redis和hiredis的基本使用详解
目录
- 启动Redis步骤
- 使用hiredis(redis客户端)连接redis
- 代码说明
- 总结
介绍了一下redis和hiredis的安装步骤,用一个简单的demo演示了使用redis的基本过程。
启动redis步骤
1、下载redis:https://github.com/redis/redis
2、编译命令:make
3、编译产物:libredis.a
(静态库)和可执行文件( redis-server
)
4、运行redis服务:./redis-server
使用hiredis(redis客户端)连接redis
1、下载hiredis:https://github.com/redis/hiredis/tree/v1.3.0
2、编译命令:
make sudo make install sudo ldconfig
3、编写一个简单的demo
#include <IOStream> #include <string> extern "C" { #include <hiredis/hiredis.h> } int main() { // 连接 Redis 服务器 redisContext* context = redisConnect("127.0.0.1", 6379); if (context == nullptr || context->err) { if (context) { std::cerr << "连接错误: " << context->errstr << std::endl; redisFree(context); } else { std::cerr << "无法分配 Redis 连接http://www.devze.com上下文" << std::endl; } return 1; } js std::cout << "成功连接到 Redis 服务器" << std::endl; // 执行 SET 命令 redisReply* reply = static_cast<redisReply*>(redisCommand(context, "SET mykey %s", "Hello, Redis!")); if (reply == nullptr)android { std::cerr << "执行 SET 命令失败" << std::endl; redisFree(context); retuphprn 1; } // 检查 SET 命令结果 if (reply->type == REDIS_www.devze.comREPLY_STATUS && std::string(reply->str) == "OK") { std::cout << "SET 命令执行成功" << std::endl; } else { std::cerr << "SET 命令执行失败: " << reply->str << std::endl; } freeReplyObject(reply); // 执行 GET 命令 reply = static_cast<redisReply*>(redisCommand(context, "GET mykey")); if (reply == nullptr) { std::cerr << "执行 GET 命令失败" << std::endl; redisFree(context); return 1; } // 检查 GET 命令结果 if (reply->type == REDIS_REPLY_STRING) { std::cout << "GET 结果: " << reply->str << std::endl; } else { std::cerr << "GET 命令执行失败,非预期的回复类型" << std::endl; } freeReplyObject(reply); // 执行 INCR 命令(演示数值操作) reply = static_cast<redisReply*>(redisCommand(context, "INCR counter")); if (reply == nullptr) { std::cerr << "执行 INCR 命令失败" << std::endl; redisFree(context); return 1; } // 检查 INCR 命令结果(整数类型) if (reply->type == REDIS_REPLY_INTEGER) { std::cout << "INCR 结果: " << reply->integer << std::endl; } freeReplyObject(reply); // 释放连接 redisFree(context); std::cout << "已断开与 Redis 服务器的连接" << std::endl; return 0; }
代码说明
- 连接部分:使用
redisConnect
连接到本地 Redis 服务器(默认ip地址是127.0.0.1,端口6379) - 错误处理:检查连接是否成功,并处理可能的错误
- 命令执行:使用
redisCommand
执行 Redis 命令,如 SET、GET、INCR - 结果解析:根据
redisReply
的类型判断命令执行结果 - 资源释放:使用
freeReplyObject
释放回复对象,使用redisFree
释放连接
4、编译:g++ -o redis_demo main.cpp -lhiredis
5、运行程序:./redis_demo
6、日志输出:
成功连接到 Redis 服务器
SET 命令执行成功GET 结果: Hello, Redis!INCR 结果: 1已断开与 Redis 服务器的连接
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
精彩评论