3.2.1 redis-cli 详解

1. -r

repeat: 将命令执行多次

  1. redis-cli -r 3 ping

2. -i

interval: 每隔几秒执行一次命令

  • 必须和 -r 一起使用
  • 单位: s
  1. redis-cli -r 5 -i 1 ping
  2. redis-cli -r 100 -i 1 info | grep used_memory_human

3. -x

从标准输入 (stdin) 读取数据作为 redis-cli 的最后一个参数

  1. $ echo "world" | redis-cli -x set hello

4. -c

cluster: 连接 Redis Cluster 节点时使用

  • 防止 moved 和 ask 异常

5. -a

密码

6. —scan 和 —pattern

扫描指定模式的键.

7. —slave

把当前客户端模拟成当前 Redis 节点的从节点, 可以用来获取当前 Redis 节点的更新操作

  1. $ redis-cli --slave

8. —rdb

请求 Redis 实例生成并发送 RDB 持久化文件, 保存在本地

9. —pipe

用于将命令封装成 Redis 通信协议定义的数据格式, 批量发送给 Redis 执行

  1. 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\
  2. 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 的网络延迟

image.png

  1. redis-cli -h {machineB} --latency

(2) —latency—history

分时段的形式了解延迟信息 (多次打印延迟信息, -i 控制间隔, 默认 15s)

  1. 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 崩溃
  1. 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)
  1. redis-benchmark -c 100 -n 20000

3. -q

仅显示 redis-benchmark 的 requests per second 信息

image.png

4. -r

向 Redis 插入更多随机的键

  1. $ redis-benchmark -c 100 -n 20000 -r 10000

-r 10000 代表只对后四位做随机处理 (-r 不是随机数的个数)。例如上面操作后, key 的数量和结果结构如下:

image.png

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