redis-cli、hiredis 和 redis-benchmark

rest1024 2026-04-24 14:27:54

 1. redis-cli:Redis 的命令行客户端

        `redis-cli` (Redis Command Line Interface) 是 Redis 官方自带的**命令行交互工具**,也是最常用的 Redis 操作工具。

        用途:直接和 Redis 服务器交互,执行各种 Redis 命令(如 `GET/SET/HSET` 等),排查问题、测试功能、手动管理 Redis 数据。

使用方式:

         - 本地连接:直接输入 `redis-cli` 即可进入交互模式。

        - 远程连接:`redis-cli -h 192.168.1.100 -p 6379 -a yourpassword`(指定 IP、端口、密码)。

         - 单次执行命令:`redis-cli SET name "zhangsan"`(无需进入交互模式)。

        适用场景:开发调试、运维操作(如查看集群状态、清理数据)、快速验证 Redis 命令是否生效。

简单示例

# 进入本地 Redis 交互模式

redis-cli

# 执行 Redis 命令

127.0.0.1:6379> SET age 20

OK

127.0.0.1:6379> GET age

"20"

# 退出

127.0.0.1:6379> exit 

2. hiredis:Redis 的 C 语言客户端库

        `hiredis` 是 Redis 官方维护的**C 语言客户端库**,用于在 C/C++ 程序中调用 Redis 接口,实现程序和 Redis 服务器的通信。

        用途:作为编程接口,让 C/C++ 代码能像 `redis-cli` 一样发送命令给 Redis 服务器,并接收返回结果

         使用方式:需要先安装 hiredis 库,然后在代码中引入头文件 `hiredis/hiredis.h`,调用其 API 连接 Redis、执行命令。

简单示例(C 语言)

 #include <stdio.h>

#include <hiredis/hiredis.h>

int main() {

         // 1. 连接 Redis 服务器(本地 6379 端口)

        redisContext *ctx = redisConnect("127.0.0.1", 6379);

         if (ctx == NULL || ctx->err) {

                printf("连接失败: %s\n", ctx ? ctx->errstr : "内存分配失败");

                return 1;

}

        // 2. 执行 SET 命令

        redisReply *reply = redisCommand(ctx, "SET name %s", "zhangsan");

        printf("SET 结果: %s\n", reply->str); freeReplyObject(reply); // 释放返回结果

        // 3. 执行 GET 命令

         reply = redisCommand(ctx, "GET name");

        printf("GET name: %s\n", reply->str); freeReplyObject(reply);

        // 4. 断开连接

        redisFree(ctx);

         return 0;

编译运行(需先安装 hiredis)

bash gcc test.c -o test -lhiredis

./test 

输出:

SET 结果: OK

GET name: zhangsan

3. redis-benchmark:Redis 的性能测试工具

         用途:模拟大量客户端并发请求,测试 Redis 在不同命令、不同并发量下的处理能力。 - **核心指标**:每秒处理请求数(QPS)、平均响应时间、延迟分布等。

常用参数:

- `-n`:总请求数(默认 100000)。

- `-c`:并发客户端数(默认 50)。

- `-t`:指定测试的命令(如 `set,get`)。

- `-q`:精简输出(只显示核心指标)。

简单示例

 # 测试 SET/GET 命令,50 并发,10 万请求,精简输出

redis-benchmark -t set,get -c 50 -n 100000 -q

# 测试所有命令的性能

redis-benchmark -n 100000 -c 100 

输出示例(精简版)

SET: 182481.75 requests per second

GET: 191570.88 requests per second 

总结

1. redis-cli:命令行交互工具,用于手动执行 Redis 命令、调试/管理 Redis。

2. hiredis:C 语言客户端库,用于在 C/C++ 程序中编程操作 Redis。

3. redis-benchmark:性能测试工具,用于评估 Redis 服务器的并发处理能力和响应性能。

         三者的核心区别:`redis-cli` 是**手动操作工具**,`hiredis` 是编程接口,`redis-benchmark` 是性能测试工具,均为 Redis 生态的核心组件,适用于不同场景。

参考链接:https://github.com/0voice

...全文
56 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

558

社区成员

发帖
与我相关
我的任务
社区描述
零声学院,目前拥有上千名C/C++开发者,我们致力将我们的学员组织起来,打造一个开发者学习交流技术的社区圈子。
nginx中间件后端 企业社区
社区管理员
  • Linux技术狂
  • Yttsam
  • 零声教育-晚晚
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

请新加入的VIP学员,先将自己参加活动的【所有文章】,同步至社区:

【内容管理】-【同步至社区-【零声开发者社区】

试试用AI创作助手写篇文章吧