Redis 是一个开源的高性能键值存储系统,通常用作数据库、缓存和消息代理。它支持多种类型的数据结构,如字符串、哈希、列表、集合、有序集合等。Redis 以其快速读写速度和低延迟而闻名,广泛应用于需要快速访问数据的场景。
1. 安装
sudo apt install redis
2. 启动Redis客户端
在终端输入以下命令启动 Redis 客户端:
- 若设置了密码,使用如下格式启动
$redis-cli -h [ip] -p [port] -a [password]
- 简单格式
$redis-cli
3. C/C++ 连接 Redis
- 导库 sudo apt install libhiredis-dev
- 导头文件 #include <hiredis/hiredis.h>
具体操作:
(1)创建连接
redisContext *conn = redisConnect("127.0.0.1", 6379);
if (conn->err) // 连接成功 conn->err = 0, 如果>0,则连接失败
{
printf("connection error\n");
redisFree(conn); // 释放连接
return 0;
}
(2) 执行语句,可以有占位符,填充字符串
redisReply *reply = redisCommand(conn, "keys *"); // 例:查询所有键
类似于printf的s%格式化方式,如
reply = redisCommand(context, “SET foo %s”, value);
(3)处理redis应答,从 reply 中取数据,包括集合
当命令被成功执行后redisCommand会有相应的返回值。如果有错误发生,返回值为NULL并且redisReply结构体中的err变量将会被设置成相应的值(请参照Errors章节)。一旦有错误发生context不能被重用并且你需要建立一个新的连接。
redisCommand执行后返回值类型为redisReply。通过redisReply结构体中的type变量可以确定命令执行的情况。
REDIS_REPLY_STATUS:
返回执行结果为状态的命令。比如set命令的返回值的类型是REDIS_REPLY_STATUS,然后只有当返回信息是"OK"时,才表示该命令执行成功。可以通过reply->str得到文字信息,通过reply->len得到信息长度。
REDIS_REPLY_ERROR:
返回错误。错误信息可以通过reply->str得到文字信息,通过reply->len得到信息长度。
REDIS_REPLY_INTEGER:
返回整型标识。可以通过reply->integer变量得到类型为long long的值。
REDIS_REPLY_NIL:
返回nil对象,说明不存在要访问的数据。
REDIS_REPLY_STRING:
返回字符串标识。可以通过reply->str得到具体值,通过reply->len得到信息长度。
REDIS_REPLY_ARRAY:
返回数据集标识。数据集中元素的数目可以通过reply->elements获得,每个元素是个redisReply对象,元素值可以通过reply->element[…index…].*形式获得,用在获取多个数据结果的操作。