3.2.1 redis-cli 详解
1. -r
repeat: 将命令执行多次
redis-cli -r 3 ping
2. -i
interval: 每隔几秒执行一次命令
- 必须和 -r 一起使用
- 单位: s
redis-cli -r 5 -i 1 ping
redis-cli -r 100 -i 1 info | grep used_memory_human
3. -x
从标准输入 (stdin) 读取数据作为 redis-cli 的最后一个参数
$ echo "world" | redis-cli -x set hello
4. -c
cluster: 连接 Redis Cluster 节点时使用
- 防止 moved 和 ask 异常
5. -a
密码
6. —scan 和 —pattern
扫描指定模式的键.
7. —slave
把当前客户端模拟成当前 Redis 节点的从节点, 可以用来获取当前 Redis 节点的更新操作
$ redis-cli --slave
8. —rdb
请求 Redis 实例生成并发送 RDB 持久化文件, 保存在本地
9. —pipe
用于将命令封装成 Redis 通信协议定义的数据格式, 批量发送给 Redis 执行
echo -en '*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n*2\r\n$4\r\nincr\r\
n$7\r\ncounter\r\n' | redis-cli --pipe
10. —bigkeys
使用 scan 命令对 Redis 的键进行采样, 从中找到内存占用比较大的键值, 这些键可能是系统的瓶颈
11. —eval
用于执行指定 Lua 脚本
12. —latency
latency 有三个选项, 分别是 —latency、—latency-history、—latency-dist。它们都可以检测网络延迟, 对于 Redis 的开发和运维非常有帮助。
(1) —latency
该选项可以测试客户端到目标 Redis 的网络延迟
redis-cli -h {machineB} --latency
(2) —latency—history
分时段的形式了解延迟信息 (多次打印延迟信息, -i 控制间隔, 默认 15s)
redis-cli -h {machineB} --latency-history
(3) —latency-dist
该选项会使用统计图表的形式从控制台输出延迟统计信息
13. —stat
实时获取Redis的重要统计信息
14. —raw 和 —no-raw
- —no-raw 选项是要求命令的返回结果必须是原始的格式
- —raw 返回格式化后的结果
3.2.2 redis-server 详解
—test-memory:
- 用来检测当前操作系统能否稳定地分配指定容量的内存给 Redis, 通过这种检测可以有效避免因为内存问题造成 Redis 崩溃
redis-server --test-memory 1024
整个内存检测的时间比较长。当输出 passed this test 时说明内存检测完毕, 最后会提示 —test-memory 只是简单检测, 如果有质疑可以使用更加专业的内存检测工具
3.2.3 redis-benchmark 详解
为 Redis 做基准性能测试
1. -c
clients, 客户端的并发数量 (默认是50)
2. -n
- -n (num) 代表客户端请求总数量 (默认是100000)
redis-benchmark -c 100 -n 20000
3. -q
仅显示 redis-benchmark 的 requests per second 信息
4. -r
向 Redis 插入更多随机的键
$ redis-benchmark -c 100 -n 20000 -r 10000
-r 10000 代表只对后四位做随机处理 (-r 不是随机数的个数)。例如上面操作后, key 的数量和结果结构如下:
5. -P
每个请求 pipeline 的数据量(默认为1)
6. -k
表客户端是否使用 keepalive, 1为使用, 0为不使用, 默认值为1
7. -t
对指定命令进行基准测试
redis-benchmark -t get,set -q
8. —csv
将结果按照 csv 格式输出
redis-benchmark -t get,set --csv