Files
ldb/test-redis
2026-03-07 07:29:32 +00:00
..
2026-03-04 07:20:09 +00:00
2026-03-07 07:29:32 +00:00
2026-03-07 07:29:32 +00:00
2026-02-11 11:59:40 +00:00

run_bench.hash.sh 使用指南

  • 脚本:test-redis/run_bench.hash.sh
  • 默认策略:persist_no / persist_everysec / nopersist
  • 测试模式:set + prefill+get
  • 默认参数:REQ=1000000 KEYSPACE=1000000 PIPE=128 VSIZE=32 ROUNDS=5 RETRIES=3

运行示例

# 默认运行5轮
./test-redis/run_bench.hash.sh

# 指定大 key 参数(示例)
ROUNDS=5 REQ=1000000 KEYSPACE=1000000 PIPE=128 VSIZE=256 RETRIES=3 ./test-redis/run_bench.hash.sh

常用环境变量

变量 默认值 说明
ROUNDS 5 每个策略的轮次
REQ 1000000 单次 bench 请求数
KEYSPACE 1000000 key 空间大小
PIPE 128 pipeline 深度
VSIZE 32 value 大小(字节)
RETRIES 3 单轮失败重试次数
SEED 12345 随机种子基数
ALLOC mypool allocator
KV_PORT 8888 kvstore 端口
SET_CMD / GET_CMD RSET / RGET 压测命令

大Key持久化协议复测覆盖版

  • 时间口径2026-03-07本次重测
  • 参数:requests=1000000 pipeline=128 keyspace=1000000 value-size=256
  • 轮次:每种策略 5
  • 去异常规则:每个场景按 qps5 轮做中位数偏差,剔除偏差最大 1 轮,再对剩余 4 轮取均值
  • kvstore 源数据:results/hash_bench_fair_summary_20260307_062549.csv
  • redis 源数据:results/redis_bigkey_summary_20260307_063158.csv
  • kvstore 去异常结果:results/hash_bench_fair_trimmed_20260307_062549.csv
  • redis 去异常结果:results/redis_bigkey_trimmed_20260307_063158.csv

kvstore 原始5轮

策略 模式 Round1 Round2 Round3 Round4 Round5 原始均值QPS 原始均值us/op
persist_no set 139895.00 138768.00 138867.00 143296.00 144388.00 141042.80 7.09
persist_no get 163764.00 164079.00 166415.00 163959.00 147881.00 161219.60 6.21
persist_everysec set 133067.00 126140.00 133430.00 139786.00 141145.00 134713.60 7.43
persist_everysec get 162076.00 165415.00 162180.00 163762.00 158226.00 162331.80 6.16
nopersist set 157950.00 143109.00 135043.00 152045.00 147233.00 147076.00 6.82
nopersist get 163381.00 169356.00 155890.00 164754.00 157550.00 162186.20 6.17

kvstore 去异常后4轮均值

策略 模式 剔除轮次 剔除QPS 去异常均值QPS 去异常均值us/op
persist_no set 5 144388.00 140206.50 7.13
persist_no get 5 147881.00 164554.25 6.08
persist_everysec set 5 141145.00 133105.75 7.52
persist_everysec get 5 158226.00 163358.25 6.12
nopersist set 3 135043.00 150084.25 6.67
nopersist get 3 155890.00 163760.25 6.11

kvstore 协议开销(基线 nopersist去异常后

策略 set QPS变化 set us/op变化 get QPS变化 get us/op变化
persist_no -6.58% +6.90% +0.48% -0.49%
persist_everysec -11.31% +12.74% -0.25% +0.16%

Redis 原始5轮

策略 模式 Round1 Round2 Round3 Round4 Round5 原始均值QPS 原始均值us/op
none set 198673.00 211843.00 193900.00 208293.00 211071.00 204756.00 4.89
none get 225347.00 221000.00 218357.00 216466.00 214747.00 219183.40 4.56
aof_no set 144042.00 139615.00 140016.00 149925.00 150658.00 144851.20 6.91
aof_no get 210541.00 211713.00 202589.00 231251.00 402028.00 251624.40 4.24
aof_everysec set 143737.00 132998.00 136973.00 144448.00 142414.00 140114.00 7.14
aof_everysec get 212422.00 201051.00 211508.00 192190.00 209874.00 205409.00 4.87

Redis 去异常后4轮均值

策略 模式 剔除轮次 剔除QPS 去异常均值QPS 去异常均值us/op
none set 3 193900.00 207470.00 4.82
none get 1 225347.00 217642.50 4.59
aof_no set 5 150658.00 143399.50 6.98
aof_no get 5 402028.00 214023.50 4.68
aof_everysec set 2 132998.00 141893.00 7.05
aof_everysec get 4 192190.00 208713.75 4.79

Redis 协议开销(基线 none去异常后

策略 set QPS变化 set us/op变化 get QPS变化 get us/op变化
aof_no -30.88% +44.81% -1.66% +1.96%
aof_everysec -31.61% +46.27% -4.10% +4.36%

简要结论

  1. 本次大 key256持久化开销主要体现在 setget 相对更稳。
  2. aof_no/aof_everysec 在 Redis 写路径的开销明显kvstore 三策略在写路径也存在可见差异。
  3. 本报告已剔除每场景 1 个异常轮次,避免单点抖动主导结论。