redis-cli和redis-benchmark测试工具介绍
获取redis-cli和redis-benchmark
创建弹性云服务器(ECS),根据不同的操作系统直接安装Redis-server,下面以ubuntu和CentOS系统为例:
直接编译安装Redis或者使用yum,apt安装Redis-server,安装Redis-Server的同时,会同步安装benchmark。
- ubuntu系统
sudo apt update sudo apt install redis-server
- CentOS系统
sudo yum install epel-release sudo yum update sudo yum -y install redis
也可以直接下载安装包,进行解压和编译,以下载redis-6.0.9版本为例:
redis-cli常用选项
- -h <hostname> :服务器的主机名,可以是IP或者域名
- -p <port> :服务器的端口,默认是6379
- -a <password> :连接服务器的密码,免密连接的实例无需输入-a {password}
- -r <repeat> :执行指定命令N次
- -n <db> :数据库编号,默认是0
- -c :启用集群模式(遵循-ASK和-MOVED重定向)
- --latency :进入特殊模式连续采样延迟
- --scan :非阻塞式地扫描键空间(区别于keys *扫描键空间会导致redis-server阻塞)
- --eval <file> :使用Lua脚本发送EVAL命令
- -x :读取STDIN中的最后一个参数
- --bigscan :扫描数据集的大key
- --raw : 如果显示数据是这样的'\xe4\xb8'十六进制编码,可以尝试加--raw转为直接显示原始数据
了解redis-cli更多详情,请访问 https://redis.io/docs/connect/cli/
redis-cli常用命令举例
redis-benchmark (redis-6.0.9)常用选项
- -h <hostname> :服务器的主机名,可以是IP或者域名
- -p <port> :服务器的端口,默认是6379
- -a <password> :连接服务器的密码,免密连接的实例无需输入-a {password}
- -c <clients> :并发连接数 ,默认50
- -n <requests> :请求总数(默认为100000)
- -d <size> :SET/GET值的数据大小(以字节为单位,默认值2)
- --dbnum <db> :选择指定的数据库编号(默认值0)
- --threads <num> :启动多线程模式(redis 6.0版本编译的redis-benchmark才支持,多线程压测redis的性能优于单线程)
- --cluster :启动集群模式(cluster集群才需要该参数)
- -k <boolean> :1=keep alive 0=reconnect(默认值1,可以测试长短连接)
- -r <keyspacelen> : 对SET/GET/INCR使用随机键,对SADD使用随机值。参数中keyspacelen 指的是添加键的数量。
- -e :如果服务器回复错误,请在stdout上显示它们
- -q :只展示query/sec的值
- -l :循环测试
- -t <tests> :可以对指定的命令进行测试
- -I :空闲模式。仅打开N个空闲连接并等待
- -P <numreq> :管道请求的并发数量(默认值为1)
了解redis-benchmark更多详情,请访问:https://redis.io/docs/reference/optimization/benchmarks/
redis-benchmark常用命令举例
- 单机、主备、读写分离和proxy集群的测试命令:
./redis-benchmark -h {IP或域名} -p 6379 -a {password} --threads {num} -n { nreqs } -r { randomkeys } -c {clients} -d {datasize} -t {command}
- cluster集群测试命令:
./redis-benchmark -h {IP或域名} -p 6379 -a {password} --threads {num} -n { nreqs } -r { randomkeys } -c {clients} -d {datasize} --cluster -t {command}
- 测试短连接:
./redis-benchmark -h {IP或域名} -p 6379 -a {password} --threads {num} -n { nreqs } -r { randomkeys } -c {clients} -d {datasize} -k 0 -t {command}
- 测试空闲连接:
./redis-benchmark -h {IP或域名} -p 6379 -a {pwd} -c {clients} -I