redis-benchmark使用

82 阅读3分钟

一、摘要

对redis服务本身进行压测,配置一个节点。如果是分片集群,将每个master节点同时压测。




二、部署

随着redis server 的安装自带上了。




三、参数

参数说明
-h连接的主机名/IP(默认是127.0.0.1)
-p连接的端口(默认是6379)
-ssocket连接方式
-c并发连接数(默认是50)
-n请求总数(默认是100000)
-d以字节单位指定SET/GET值的长度
--dbnum指定连接库ID(默认是0)
-k是否保留测试键值对,1是保留,0是不保留(默认值是1)
-rSET/GET/INCR使用随机key,SADD使用随机值
-P通过管道符传输请求
-e如果返回错误,显示在标准输出上
-q退出Redis,仅仅显示query/sec值
--csv以CSV格式输出
-l循环永久执行测试
-t仅运行以逗号分隔的测试命令列表
-Iidle模式,打开N个idle连接并等待



四、读测试

# 读性能压测,1000请求数,100并发
redis-benchmark -h <主节点IP> -p 6379 -a 123456 -t get -c 100 -n 10000



五、写测试

# 写性能压测,1000请求数,100并发
redis-benchmark -h <主节点IP> -p 6379 -a 123456 -t set -c 100 -n 10000



六、混合读写测试

# 混合读写压测,测试某些特定的命令,例如 GETSET:
redis-benchmark -h <IP> -p 6379 -a 123456 -c 100 -n 10000 -t get,set

压测结束后的样例:




七、局限性

仅仅是对redis的压测,如果要业务压测,redis-benchmark 不支持。




八、参考

redis.com.cn/topics/benc…




九、补充

redis-benchmark -h 172.25.188.41 -p 6379  -a 2ghlmvl_MT -t get -d 1048576 -c 8000 -n 10000000
redis-benchmark -h 172.25.188.43 -p 6379  -a 2ghlmvl_MT -t get -d 1048576 -c 8000 -n 10000000
redis-benchmark -h 172.25.188.36 -p 6379  -a 2ghlmvl_MT -t get -d 1048576 -c 8000 -n 10000000
redis-benchmark -h 172.25.188.33 -p 6379  -a 2ghlmvl_MT -t get -d 1048576 -c 8000 -n 10000000
redis-benchmark -h 172.25.188.38 -p 6379  -a 2ghlmvl_MT -t get -d 1048576 -c 8000 -n 10000000
redis-benchmark -h 172.25.188.35 -p 6379  -a 2ghlmvl_MT -t get -d 1048576 -c 8000 -n 10000000

# 1000w请求
# 100 并发,默认是50
redis-benchmark -h 172.25.188.43 -p 6379 -a 2ghlmvl_MT -t INCR -d 1048576 -c 800 -n 1000000

# 开发的redis ,800并发,
redis-benchmark -h 172.25.237.85 -p 6379 -t INCR -d 1048576 -c 800 -n 1000000

# 1000 并发,默认是50, -q 表示输出关键信息
redis-benchmark -h 172.25.237.87 -p 6379  -d 1048576 -c 1000 -n 10000000 -q

# 开发的redis ,1000并发,测试所有类型的命令
redis-benchmark -h 172.25.237.85 -p 6379  -d 1048576 -c 1000 -n 10000000 -q


图片.png