it编程 > 数据库 > Redis

redis和hiredis的基本使用详解

19人参与 2025-05-30 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 连接上下文" << std::endl;
        }
        return 1;
    }
    std::cout << "成功连接到 redis 服务器" << std::endl;

    // 执行 set 命令
    redisreply* reply = static_cast<redisreply*>(rediscommand(context, "set mykey %s", "hello, redis!"));
    if (reply == nullptr) {
        std::cerr << "执行 set 命令失败" << std::endl;
        redisfree(context);
        return 1;
    }

    // 检查 set 命令结果
    if (reply->type == redis_reply_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;
}

代码说明

4、编译:g++ -o redis_demo main.cpp -lhiredis

5、运行程序:./redis_demo

6、日志输出:

成功连接到 redis 服务器
set 命令执行成功
get 结果: hello, redis!
incr 结果: 1
已断开与 redis 服务器的连接

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

Redis中的Lettuce使用详解

05-30

Redis指南及6.2.x版本安装过程

06-01

Redis主从复制作用及搭建过程

06-01

Apache Doris中的Coordinator节点核心作用实例详解

06-03

CentOS 7 YUM源配置错误的解决方法

06-03

Redis 缓存使用的热点Key问题的解决

05-26

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论