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

bench 程序使用说明(命令 + 参数解释)

1) 快速查看帮助

./test-redis/bench --help

2) 命令模板

./test-redis/bench \
  --host 127.0.0.1 \
  --port 8888 \
  --mode mixed \
  --requests 1000000 \
  --pipeline 64 \
  --keyspace 100000 \
  --value-size 32 \
  --set-ratio 50 \
  --set-cmd RSET \
  --get-cmd RGET \
  --key-prefix bench:key: \
  --seed 12345 \
  --verify-get

3) 参数解释(对应 bench.c

参数 默认值 说明
--host <ip> 127.0.0.1 目标服务 IP
--port <port> 6379 目标服务端口
--mode <set|get|mixed> mixed 压测模式:纯写/纯读/读写混合
--requests <n> 1000000 总请求数(不是每秒)
--pipeline <n> 64 pipeline 批量深度
--keyspace <n> 100000 key 空间大小key 随机落在 [0, keyspace)
--value-size <n> 32 value 字节长度
--set-ratio <0..100> 50 mixed 下 SET 比例GET 比例是 100-set-ratio
--set-cmd <cmd> SET 写命令名(如 SET/RSET
--get-cmd <cmd> GET 读命令名(如 GET/RGET
--key-prefix <prefix> bench:key: key 前缀
--seed <n> 当前时间 随机种子;固定后可复现实验
--verify-get 关闭 开启后校验 GET 返回内容是否与写入值一致
--help / -h - 打印帮助

命令

# kvstore 写RSET
./test-redis/bench --host 127.0.0.1 --port 8888 --mode set --set-cmd RSET --get-cmd RGET --requests 3000000 --pipeline 128 --keyspace 1000000 --value-size 32 --key-prefix bench:ts:set:

# kvstore 读RGET
./test-redis/bench --host 127.0.0.1 --port 8888 --mode get --set-cmd RSET --get-cmd RGET --requests 3000000 --pipeline 128 --keyspace 1000000 --value-size 32 --verify-get --key-prefix bench:ts:get:


# kvstore 写HSET
./test-redis/bench --host 127.0.0.1 --port 8888 --mode set --set-cmd HSET --get-cmd HGET --requests 3000000 --pipeline 128 --keyspace 1000000 --value-size 32 --key-prefix bench:ts:set:

# kvstore 读HGET
./test-redis/bench --host 127.0.0.1 --port 8888 --mode get --set-cmd HSET --get-cmd HGET --requests 3000000 --pipeline 128 --keyspace 1000000 --value-size 32 --verify-get --key-prefix bench:ts:get:

# Redis 策略对比示例6381 配置成 rdb_default
./test-redis/bench --host 127.0.0.1 --port 6381 --mode set --requests 3000000 --pipeline 128 --keyspace 1000000000 --value-size 32 --key-prefix bench:ts:redis:
./test-redis/bench --host 127.0.0.1 --port 6379 --mode set --requests 3000000 --pipeline 128 --keyspace 1000000000 --value-size 32 --key-prefix bench:ts:redis:

./test-redis/bench --host 127.0.0.1 --port 6381 --mode set --requests 3000000 --pipeline 128 --keyspace 1000000000 --value-size 32 --key-prefix bench:ts:redis:
./test-redis/bench --host 127.0.0.1 --port 6379 --mode set --requests 3000000 --pipeline 128 --keyspace 1000000000 --value-size 32 --key-prefix bench:ts:redis:

run_hash_bench.sh 三轮均值复测2026-03-05 07:59:54

  • 轮次3 轮(取均值)
  • 参数requests=1000000 pipeline=128 keyspace=1000000 value-size=32
  • 明细数据:results/hash_bench_detail_20260305_075954.csv
  • 汇总数据:results/hash_bench_summary_20260305_075954.csv

kvstoreRSET/RGET持久化 × allocator

场景 模式 Round1 Round2 Round3 均值QPS 均值avg(us/op) 均值elapsed(s)
persist_mypool (incremental, mypool) set 125179 170592 164976 153582.33 6.64 6.64
persist_mypool (incremental, mypool) get 186087 195807 193450 191781.33 5.22 5.22
nopersist_mypool (none, mypool) set 185397 189265 187515 187392.33 5.33 5.34
nopersist_mypool (none, mypool) get 195032 203252 196291 198191.67 5.05 5.05
persist_malloc (incremental, malloc) set 175529 172307 181948 176594.67 5.67 5.67
persist_malloc (incremental, malloc) get 202299 207732 181749 197260.00 5.08 5.09
nopersist_malloc (none, malloc) set 162956 192052 191846 182284.67 5.52 5.52
nopersist_malloc (none, malloc) get 200417 211609 196936 202987.33 4.93 4.93

RedisSET/GET各持久化模式

场景 模式 Round1 Round2 Round3 均值QPS 均值avg(us/op) 均值elapsed(s)
none (none) set 234761 247981 243948 242230.00 4.13 4.13
none (none) get 247753 284771 275492 269338.67 3.73 3.73
rdb_default (rdb_default) set 245989 238020 241112 241707.00 4.14 4.14
rdb_default (rdb_default) get 278725 274510 276342 276525.67 3.62 3.62
aof_no (aof_no) set 196100 209723 201687 202503.33 4.94 4.94
aof_no (aof_no) get 269520 277701 270562 272594.33 3.67 3.67
aof_everysec (aof_everysec) set 201758 201078 180037 194291.00 5.16 5.16
aof_everysec (aof_everysec) get 259585 269224 279181 269330.00 3.71 3.72
aof_always (aof_always) set 75968 78265 76608 76947.00 13.00 13.00
aof_always (aof_always) get 276839 271247 275017 274367.67 3.65 3.65

run_hash_bench.sh 三轮均值复测2026-03-05 12:58:34

  • 轮次5 轮(取均值)
  • 参数requests=1000000 pipeline=128 keyspace=1000000 value-size=32
  • 明细数据:results/hash_bench_detail_20260305_125834.csv
  • 汇总数据:results/hash_bench_summary_20260305_125834.csv

kvstoreRSET/RGET持久化 × allocator

场景 模式 Round1 Round2 Round3 Round4 Round5 均值QPS 均值avg(us/op) 均值elapsed(s)
persist_mypool (incremental, mypool) set 166832 172252 184622 173181 180547 175486.80 5.71 5.71
persist_mypool (incremental, mypool) get 187976 188203 193459 184560 190543 188948.20 5.29 5.29
nopersist_mypool (none, mypool) set 183273 180666 184588 182765 180441 182346.60 5.49 5.48
nopersist_mypool (none, mypool) get 186969 185652 183546 187826 191845 187167.60 5.34 5.34
persist_malloc (incremental, malloc) set 189030 135132 163693 161888 163137 162576.00 6.22 6.22
persist_malloc (incremental, malloc) get 198683 166038 159371 184912 181288 178058.40 5.65 5.65
nopersist_malloc (none, malloc) set 181197 189295 189128 181291 178993 183980.80 5.44 5.44
nopersist_malloc (none, malloc) get 189424 193316 194474 186572 163052 185367.60 5.42 5.42

RedisSET/GET各持久化模式

场景 模式 Round1 Round2 Round3 Round4 Round5 均值QPS 均值avg(us/op) 均值elapsed(s)
none (none) set 229799 235912 233883 232683 239711 234397.60 4.27 4.27
none (none) get 256082 274863 257801 250389 262797 260386.40 3.85 3.84
rdb_default (rdb_default) set 238612 232348 231110 233426 227900 232679.20 4.30 4.30
rdb_default (rdb_default) get 268351 263651 268189 265139 249811 263028.20 3.80 3.80
aof_no (aof_no) set 178673 199836 205048 204901 195694 196830.40 5.09 5.09
aof_no (aof_no) get 245237 271172 257791 260414 269400 260802.80 3.84 3.84
aof_everysec (aof_everysec) set 198803 193822 188866 170821 97423 169947.00 6.32 6.32
aof_everysec (aof_everysec) get 277244 257143 253943 269896 284002 268445.60 3.73 3.73
aof_always (aof_always) set 66274 70593 65851 54098 74587 66280.60 15.27 15.27
aof_always (aof_always) get 263043 265738 257121 266889 272781 265114.40 3.77 3.77

run_hash_bench.sh 三轮均值复测2026-03-06 09:00:30

  • 轮次3 轮(取均值)
  • 参数requests=1000000 pipeline=128 keyspace=1000000 value-size=32
  • 明细数据:results/hash_bench_detail_20260306_090030.csv
  • 汇总数据:results/hash_bench_summary_20260306_090030.csv

kvstoreRSET/RGET持久化 × allocator

场景 模式 Round1 Round2 Round3 均值QPS 均值avg(us/op) 均值elapsed(s)
persist_mypool (incremental, mypool) set 170954 158299 175493 168248.67 5.96 5.96
persist_mypool (incremental, mypool) get 173519 181416 188295 181076.67 5.53 5.53
everysec_mypool (incremental, mypool) set 158378 160029 175998 164801.67 6.08 6.08
everysec_mypool (incremental, mypool) get 180343 177421 177644 178469.33 5.60 5.60
nopersist_mypool (none, mypool) set 168031 160304 168327 165554.00 6.04 6.04
nopersist_mypool (none, mypool) get 173737 173007 161784 169509.33 5.91 5.91
persist_malloc (incremental, malloc) set 160752 142393 182518 161887.67 6.24 6.24
persist_malloc (incremental, malloc) get 157918 177457 181606 172327.00 5.83 5.82
everysec_malloc (incremental, malloc) set 178195 168682 177041 174639.33 5.73 5.73
everysec_malloc (incremental, malloc) get 193145 149187 178615 173649.00 5.83 5.83
nopersist_malloc (none, malloc) set 170011 172967 171752 171576.67 5.83 5.83
nopersist_malloc (none, malloc) get 174777 173381 181365 176507.67 5.67 5.67

RedisSET/GET各持久化模式

场景 模式 Round1 Round2 Round3 均值QPS 均值avg(us/op) 均值elapsed(s)
none (none) set 218920 223448 222306 221558.00 4.52 4.51
none (none) get 252607 255685 256130 254807.33 3.92 3.92
rdb_default (rdb_default) set 216497 220924 214752 217391.00 4.60 4.60
rdb_default (rdb_default) get 252492 246194 248558 249081.33 4.01 4.02
aof_no (aof_no) set 166307 186052 181121 177826.67 5.63 5.64
aof_no (aof_no) get 255742 254771 257784 256099.00 3.91 3.90
aof_everysec (aof_everysec) set 180584 184429 172466 179159.67 5.59 5.59
aof_everysec (aof_everysec) get 257102 232146 242470 243906.00 4.11 4.11
aof_always (aof_always) set 65397 67487 67538 66807.33 14.97 14.97
aof_always (aof_always) get 235975 247116 227383 236824.67 4.23 4.23