1. redis-cli

  • -r(repeat)选项代表江命令执行多次
# 执行3次ping命令
redis-cli -r 3 ping
  • -i(interval)选项代表每个几秒执行一次命令(必须和-r选项一致使用;单位是秒,不支持毫秒微单位)
# 每隔10ms执行一次共执行3次
redis-cli -r 3 -i 0.01 ping
  • -x 选项代表从标准输入(stdin)读取数据作为redis-cli的最后一个参数
# 将字符串world作为set hello的值
echo "world" | redis-cli -x set hello
  • -c(cluster)选项是连接Redis Cluster节点时需要使用的,-c选项可以防止moved和ask异常

  • -a 如果Redis配置了密码,可以用-a(auth)选项,有了这个选项就不需要手动输入auth命令

  • --scan和--pattern 选项用于扫描指定模式的键,相当于使用scan命令

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

  • --rdb 选项会请求Redis实例生成并发送RDB持久化文件,保存在本地,可使用它做持久化文件的定期备份

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

  • --bigkeys 选项使用scan命令对Redis的键进行采样,从中找到内存占用比较大的键值,这些键可能是系统的瓶颈

  • --eval 选项用于执行指定Lua脚本

  • --latency 选项可以测试客户端到目标Redis的网络延迟(执行结果只有一条)

  • --latency-history 选项以分时段的形式了解延迟信息(延时信息每15秒输出一次),可以通过-i参数控制间隔时间

  • --latency-dist 选项会使用统计图表的形式从控制台输出延迟统计信息

  • --stat 选项可以实时获取Redis的重要统计信息(info命令中的统计信息更全),能实时看到一些增量的数据(例如requests)

  • --raw和--no-raw
    --no-raw选项是要求命令的返回结果必须是原始的格式,--raw恰恰相反,返回格式化后的结果

$redis-cli set hello "你好"
OK 
# 如果正常执行get或者使用--no-raw选项,那么返回的结果是二进制格式
$redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"
# 如果正常执行get或者使用--no-raw选项,那么返回的结果是二进制格式
$redis-cli --no-raw get hello
"\xe4\xbd\xa0\xe5\xa5\xbd" 
 # 如果使用了--raw选项,将会返回中文:
 $redis-cli --raw get hello你好 

2. redis-server

  • --test-memory 可以用来检测当前操作系统能否稳定地分配指定容量的内存给Redis,通过这种检测可以有效避免因为内存问题造成Redis崩溃
# 检测当前操作系统能否提供1G的内存给Redis:
redis-server --test-memory 1024

通常无需每次开启Redis实例时都执行--test-memory选项,该功能更偏向于调试和测试,例如,想快速占满机器内存做一些极端条件的测试,这个功能是一个不错的选择

3. redis-benchmark

redis-benchmark可以为Redis做基准性能测试,它提供了很多选项帮助开发和运维人员测试Redis的相关性能

  • -c(clients)选项代表客户端的并发数量(默认是50)
  • -n(num)选项代表客户端请求总量(默认是100000)
  • -q 选项仅仅显示redis-benchmark的requests per second信息
  • -r(random)在一个空的Redis上执行了redis-benchmark会发现只有3个键,如果想向Redis插入更多的键,可以执行使用-r选项,可以向Redis插入更多随机的键
  • -P 选项代表每个请求pipeline的数据量(默认为1)
  • -k 选项代表客户端是否使用keepalive,1为使用,0为不使用,默认值为1
  • -t 选项可以对指定命令进行基准测试
  • --csv 选项会将结果按照csv格式输出,便于后续处理,如导出到Excel等。