背景介绍
redis-benchmark 是 Redis 自带的一款性能测试工具,用于模拟不同的客户端请求场景,帮助开发者评估 Redis 在特定硬件、配置和负载下的性能。无论是新部署的 Redis 实例还是优化后的环境,redis-benchmark 都可以提供基准测试数据,以衡量性能的变化。
redis-benchmark 的参数
-h <hostname>:Redis 服务器地址,默认为 127.0.0.1。
-p <port>:Redis 服务器端口,默认为 6379。
-c <clients>:并发客户端数。
-n <requests>:总请求数。
-d <size>:设置值的字节大小(用于 SET 和 GET 测试)。
-t <tests>:指定要测试的命令,命令间用逗号分隔。
-P <pipeline>:每个请求管道中的命令数,增大此值可测试管道化的性能。
-r <keyspace>:生成随机键值,用于避免缓存命中。
实际使用
根据业务场景模拟 Redis 的使用方式,以下是常见的测试场景:
高并发写入
适用于日志收集、实时分析等场景:
redis-benchmark -t SET -c 500 -n 100000 -d 1024 -r 100000 -a 1qaz@WSX
# 模拟 500 并发客户端,每次写入 1 KB 的数据。
高并发读取
适用于缓存服务等场景:
redis-benchmark -t GET -c 1000 -n 200000 -r 200000 -a 1qaz@WSX
# 模拟 1000 并发客户端,从 Redis 中读取数据。
管道化操作
适用于需要批量处理请求的场景:
redis-benchmark -t MSET -c 200 -n 50000 -P 50 -r 50000 -a 1qaz@WSX
# 通过管道化批量发送命令
混合读写
通过 -t 参数组合多种命令进行测试:
redis-benchmark -t GET,SET -c 100 -n 50000 -r 50000 -a 1qaz@WSX
