Redis-cli常用参数及功能的详细说明
Redis-cli常用参数及功能的详细说明
相关参考知识书籍 <<Redis运维与开发>>
以下是Redis-cli常用参数及功能的详细说明
1. **-r
(重复执行命令)**
-
作用:重复执行指定命令多次。
-
示例:执行3次
PING
命令:redis-cli -r 3 ping
输出结果会连续返回3次
PONG
。 -
应用场景:测试命令稳定性或批量操作(如压力测试)。
2. **-i
(间隔执行命令)**
-
作用:与
-r
配合使用,设置每次命令执行的间隔时间(单位为秒)。 -
示例:每隔1秒执行一次
PING
,共5次:redis-cli -r 5 -i 1 ping
支持毫秒级间隔(如
-i 0.1
表示100毫秒)。 -
注意事项:避免高频操作导致服务端负载过高。
3. **-x
(从标准输入读取参数)**
-
作用:从标准输入(如管道或文件)读取数据作为命令的最后一个参数。
-
示例:通过管道设置键值:
echo "world" | redis-cli -x set hello
等同于执行
SET hello world
。 -
应用场景:自动化脚本或批量导入数据。
4. **-c
(集群模式)**
-
作用:连接Redis Cluster时自动处理
MOVED
和ASK
重定向异常。 -
示例:连接到集群节点:
redis-cli -c -h 192.168.1.100 -p 6379
在跨槽位操作时,客户端会自动跳转到正确节点。
-
重要性:避免手动处理集群分片逻辑。
5. **-a
(密码认证)**
-
作用:直接使用密码认证,无需手动输入
AUTH
命令。 -
示例:连接带密码的Redis实例:
redis-cli -a yourpassword
需确保配置文件
redis.conf
中设置了requirepass
。 -
安全提示:避免在命令行明文暴露密码,建议通过环境变量传递。
6. **--rdb
(生成RDB备份)**
-
作用:请求Redis生成RDB持久化文件并保存到本地。
-
示例:导出当前实例的RDB文件:
redis-cli --rdb /path/to/dump.rdb
适用于定期备份或迁移数据。
-
注意事项:需确保服务端有足够内存生成快照。
7. **--bigkeys
(检测大键)**
-
作用:扫描内存中占用较大的键(如字符串值超过5MB或集合元素超2000)。
-
示例:扫描并输出大键统计:
redis-cli --bigkeys
输出包括各数据类型最大键及其大小。
-
风险提示:大键可能导致内存溢出、删除阻塞或集群倾斜。
8. **--eval
(执行Lua脚本)**
-
作用:直接运行Lua脚本,支持原子性操作。
-
示例:执行脚本文件
script.lua
:redis-cli --eval script.lua key1 key2 , arg1 arg2
脚本中可通过
KEYS
和ARGV
数组获取参数。 -
优势:减少网络开销,适合复杂逻辑(如分布式锁)。
9. **--latency
(网络延迟检测)**
-
作用:测试客户端到Redis服务器的网络延迟。
-
子选项:
- **
--latency
**:实时输出最小、最大、平均延迟。 - **
--latency-history
**:分段统计延迟(默认每15秒)。 - **
--latency-dist
**:以直方图形式展示延迟分布。
- **
-
示例:持续检测延迟:
redis-cli --latency -h 192.168.1.100
-
应用场景:诊断网络抖动或服务端性能问题。
综合应用示例
# 在集群模式下,每隔2秒检测大键,共扫描5次
redis-cli -c -h cluster-node -i 2 -r 5 --bigkeys# 使用密码连接,导出RDB文件并执行Lua脚本
redis-cli -a password --rdb backup.rdb --eval script.lua key1 , arg1
注意事项
- 性能影响:
--bigkeys
和--rdb
可能占用较多资源,建议在从节点执行。 - 脚本安全:Lua脚本需避免死循环或长时间阻塞操作。
- 集群兼容性:部分命令(如
KEYS *
)在集群中不可用,需替换为SCAN
。