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等。