首页/数据/Redis 进阶速查/集群模式压测要点
性能与排障129 条

集群模式压测要点

测集群要用支持集群路由的压测工具(如 memtier --cluster-mode):键分布要覆盖多槽,注意 MOVED 重定向开销与逐节点分配均匀度。

Redis 进阶速查数据更新于 2026-10-13

集群压测的前提

测集群要用支持集群路由的压测工具,键分布要覆盖多个槽与多个节点,同时注意 MOVED 重定向带来的额外开销,以及各节点的负载是否均匀。用单机压测工具直打一个节点,测的是那个节点的能力,不是集群的能力。

基本信息

工具要求支持集群路由的压测客户端
键分布覆盖多个槽与多个节点
观察重点重定向次数与节点间差异
报告要求给出每个节点的数据

典型使用场景

  • 集群扩容前的容量验证
  • 对比单节点与集群整体的吞吐差异
  • 验证键设计是否导致数据倾斜
  • 评估 MOVED 重定向对客户端延迟的影响
  • 槽迁移期间的性能表现观察

集群压测命令

集群压测命令
memtier_benchmark --cluster-mode -s 127.0.0.1 -p 7000 --ratio=1:9 --clients=40 -n 100000
# 键空间要足够大,覆盖多个槽,避免全部落在同一节点
redis-cli --cluster check 127.0.0.1:7000     # 压测前先确认槽位分布
redis-cli -h node1 -p 7000 INFO stats | grep -E 'instantaneous_ops_per_sec'
redis-cli -h node2 -p 7000 INFO stats | grep -E 'instantaneous_ops_per_sec'
redis-cli -h node1 -p 7000 INFO memory | grep -E 'used_memory_human'

观察项与异常表现

观察项含义异常表现
每节点吞吐各节点实际处理速率差异大说明数据倾斜
MOVED 与 ASK 次数重定向发生频率偏高说明客户端路由有问题
集群错误率CLUSTERDOWN 或 TRYAGAIN 出现次数非零说明集群状态异常
键分布键落在多少个槽上键集过小会压出假热点
节点内存各节点的内存水位倾斜会先打满个别节点
连接分布连接是否均衡落在各节点集中连一个节点会误判
键集太小时,所有键可能落在少数几个槽上,压出来的热点是人为制造的,与真实业务的数据分布无关,结论自然也就不成立。
用单机压测工具直打集群中的一个节点,得到的只是该节点的能力,不能代表集群整体,更不能用来做集群容量规划。
压测期间要同步采集各节点的服务端指标。只拿客户端侧的总吞吐,无法区分是服务端到极限还是客户端路由在拖后腿。

易错点

  • 用单机工具打集群单节点:结论不可迁移,容量规划失去依据
  • 键集过小集中在少数槽:压出假热点,误判为数据倾斜
  • 只看整体吞吐不看每节点:均值掩盖个别节点的倾斜
  • 忽略重定向开销:客户端路由不完善时,延迟被重定向显著放大

数据来源与参考

  • Redis 官方实践:集群压测
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌