558
社区成员
发帖
与我相关
我的任务
分享`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
`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
用途:模拟大量客户端并发请求,测试 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 生态的核心组件,适用于不同场景。