redis-cli 的详细用法说明
一、基本连接方式
1. 本地连接(默认 127.0.0.1:6379)
redis-cli
2. 指定主机和端口
redis-cli -h 192.168.1.10 -p 6379
3. 带密码连接
方式一
redis-cli -h 127.0.0.1 -p 6379 -a yourpassword
️ 注意:这种方式密码会出现在 history 里
方式二
redis-cli
> AUTH yourpassword
方式三(生产环境推荐)
REDISCLI_AUTH=yourpassword redis-cli
不会出现在 history
4. 连接指定数据库
redis-cli -n 2
或者进入后:
SELECT 2
二、常用参数详解
| 参数 | 作用 |
|---|---|
| -h | 指定 host |
| -p | 指定端口 |
| -a | 密码 |
| -n | 数据库编号 |
| -u | 使用 URI 连接 |
| --raw | 原始输出 |
| --scan | 安全遍历 key |
| --pattern | 指定匹配模式 |
| --latency | 监控延迟 |
| --stat | 实时统计 |
| --bigkeys | 查找大 key |
| --memkeys | 内存分析 |
| --pipe | 批量导入 |
| -r | 重复执行 |
| -i | 执行间隔 |
三、URI 连接方式
redis-cli -u redis://:password@127.0.0.1:6379/0
格式:
redis://[:password@]host:port/db
四、执行单条命令
redis-cli GET name
redis-cli SET name test
适合脚本调用。
五、批量执行
1. 重复执行
redis-cli -r 5 PING
执行 5 次
2. 每隔 1 秒执行
redis-cli -r -1 -i 1 INFO memory
持续执行
六、安全遍历 Key(生产环境必会)
️ 千万不要用 KEYS *(会阻塞)
正确方式:
redis-cli --scan
带模式:
redis-cli --scan --pattern "user:*"
七、查找大 Key(排查卡顿必备)
redis-cli --bigkeys
会扫描所有 key,输出:
最大 string
最大 list
最大 set
最大 hash
最大 zset
八、内存分析(Redis 4.0+)
redis-cli --memkeys
分析哪些 key 占用内存最多
九、实时监控
1. MONITOR(实时所有操作)
redis-cli MONITOR
️ 会非常耗性能,只用于临时排查
2. 实时统计
redis-cli --stat
输出:
keys mem clients blocked requests
1000 2.5M 10 0 100000
3. 延迟检测
redis-cli --latency
持续监控
4. 延迟历史
redis-cli --latency-history
十、慢查询排查
查看慢日志条数:
redis-cli SLOWLOG LEN
查看慢日志:
redis-cli SLOWLOG GET 10
十一、导入数据(高性能)
使用 pipe 模式:
cat data.txt | redis-cli --pipe
示例 data.txt:
SET name test
SET age 18
适合大批量导入
十二、备份导出
导出 RDB
redis-cli SAVE
或:
redis-cli BGSAVE
导出某类 key
redis-cli --scan --pattern "user:*"
配合脚本导出
十三、集群模式
连接集群:
redis-cli -c -h 127.0.0.1 -p 7000
-c 自动跳转 slot
查看 cluster info:
CLUSTER INFO
十四、调试技巧(实战)
查看当前连接数
redis-cli INFO clients
查看内存使用
redis-cli INFO memory
查看当前数据库 key 数量
redis-cli DBSIZE
查看某个 key 类型
redis-cli TYPE mykey
查看 key 占用内存
redis-cli MEMORY USAGE mykey
十五、脚本模式
执行 Lua:
redis-cli --eval script.lua
带参数:
redis-cli --eval script.lua key1 key2 , arg1 arg2
十六、生产环境常用组合
查 user 开头 key 数量
redis-cli --scan --pattern "user:*" | wc -l
删除匹配 key(安全方式)
redis-cli --scan --pattern "user:*" | xargs redis-cli DEL
️ 数据多时要用批量 xargs -n
十七、redis-cli 退出
quit
或
exit
十八、常见问题
1. 中文乱码?
使用:
redis-cli --raw
2. 连接超时?
检查:
protected-mode
bind
防火墙