Redis 简介与 redis-plus-plus 使用指南

Redis 与 redis-plus-plus 使用指南

Redis介绍与安装

Redis(Remote Dictionary Server)是一个开源的高性能键值对(key-value)数据库。它通常用作数据结构服务器,因为除了基本的键值存储功能外,Redis 还支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)以及范围查询、位图、超日志和地理空间索引等。以下是 Redis 的一些主要特性:

1.内存中数据库:Redis 将所有数据存储在内存中,这使得读写速度非常快。

2.持久化:尽管 Redis 是内存数据库,但它提供了持久化选项,可以将内存中的数据保存到磁盘上,以防系统故障导致数据丢失。

3.支持多种数据结构:Redis 不仅支持基本的键值对,还支持列表、集合、有序集合等复杂的数据结构。

4.原子操作:Redis 支持原子操作,这意味着多个操作可以作为一个单独的原子步骤执行,这对于并发控制非常重要。

5.发布/订阅功能:Redis 支持发布订阅模式,允许多个客户端订阅消息,当消息发布时,所有订阅者都会收到消息。

6.高可用性:通过 Redis 哨兵(Sentinel)和 Redis 集群,Redis 可以提供高可用性和自动故障转移。

7.复制:Redis 支持主从复制,可以提高数据的可用性和读写性能

8.事务:Redis 提供了事务功能,可以保证一系列操作的原子性执行。

9.Lua 脚本:Redis 支持使用 Lua 脚本进行复杂的数据处理,可以在服务器端执行复杂的逻辑。

10.客户端库:Redis 拥有丰富的客户端库,支持多种编程语言,如 Python、Ruby、Java、C# 等。

11.性能监控:Redis 提供了多种监控工具和命令,可以帮助开发者监控和优化性能。

12.易于使用:Redis 有一个简单的配置文件和命令行界面,使得设置和使用变得容易。Redis 广泛用于缓存、会话存储、消息队列、排行榜、实时分析等领域。由于其高性能和灵活性,Redis 成为了现代应用程序中非常流行的数据存储解决方案之一。

安装

sudo apt-get intsall redis -y

支持远程连接

修改 /etc/redis/redis.conf
修改 bind 127.0.0.1 为 bind 0.0.0.0
修改 protected-mode yes 为 protected-mode no

控制 Redis 启动

# 启动 Redis 服务
service redis-server start
# 停止 Redis 服务
service redis-server stop
# 重启 Redis 服务
service redis-server restart

redis-plus-plus

C++ 操作 redis 的库有很多,咱们此处使用 redis-plus-plus,这个库的功能强大,使用简单。

Github 地址: https://github.com/sewenew/redis-plus-plus

安装 hiredis

redis-plus-plus 是基于 hiredis 实现的,hiredis 是一个 C 语言实现的 redis 客户端。因此需要先安装 hiredis,直接使用包管理器安装即可

sudo apt-get -y install libhiredis-dev

下载 redis-plus-plus 源码

git clone https://github.com/sewenew/redis-plus-plus.git

编译/安装 redis-plus-plus

使用 cmake 构建

cd redis-plus-plus
mkdir build
cd build
cmake ..
make
sudo make install # 这一步操作需要管理员权限. 如果是非 root 用户, 使用sudo make install 执行

构建成功后, 会在 /usr/local/include/ 中多出 sw 目录, 并且内部包含 redis-plus-plus 的一系列头文件. 会在 /usr/local/lib/ 中多出一系列 libredis 库文件。

接口介绍

redis 本身支持很多数据类型的键值对,这里主要介绍字符串键值对的基础操作。

namespace sw
{
   
   
    namespace redis
    {
   
   
        struct ConnectionOptions
        {
   
   
            std::string host;
            int port = 6379;
            std::string path;
            std::string user = "default";
            std::string password;
            int db = 0; // 默认 0 号库
            bool keep_alive = false;
        };
        struct ConnectionPoolOptions
        {
   
   
            std::size_t size = 1; //最大连接数量
        };
        class Redis
        {
   
   
            // uri e.g 'tcp://127.0.0.1:6379'
            explicit Redis(const std::string &uri);
            explicit Redis(const ConnectionOptions &connection_opts,
          
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椿融雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值