You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为redis-benchmark工具添加自定义命令(如xadd)以测试RPS性能?

给redis-benchmark添加XADD等流命令测试RPS的方法

方法1:用内置自定义参数(无需改源码)

redis-benchmark本身支持直接构造自定义命令,不用修改源码就能测XADD的性能:

  • 基础测试写法:
    直接指定自定义命令模板,用--自定义命令名传递完整Redis命令:

    redis-benchmark -n 100000 -c 50 \
    --xadd_test "XADD mystream * field1 val1 field2 val2"
    

    这里-n是总请求数,-c是并发连接数,*会自动生成唯一消息ID,符合真实场景。

  • 模拟动态业务数据:
    要生成不同的字段值,用__rand_int__(随机整数)、__rand_string__(随机字符串)占位符:

    redis-benchmark -n 100000 -c 50 \
    --xadd "XADD user_stream * uid __rand_int__:1:10000 name __rand_string__:10"
    

    每个请求的uid是1-10000的随机数,name是10位随机字符串,贴近真实流量。

  • 简化输出:
    加-q参数只看RPS结果:

    redis-benchmark -q -n 100000 -c 50 --xadd "XADD mystream * val __rand_int__:1:1000"
    

方法2:修改源码添加内置命令(长期使用)

如果想把XADD当成内置命令用-t xadd调用,改源码重新编译:

  1. 下载对应版本的Redis源码,打开src/redis-benchmark.c
  2. 找到struct command数组(文件开头附近),加一行XADD的定义:
    {"xadd",0,"xadd mystream * field value",0,NULL,0,0,0,0,0,0},
    
    第三个参数是默认命令模板,可按需调整字段数量或占位符。
  3. 重新编译:
    make clean && make
    
  4. 编译完成后直接用内置命令测试:
    redis-benchmark -t xadd -n 100000 -c 50
    

测试注意事项

  • 测试前执行DEL mystream清理旧流数据,避免干扰结果
  • 调整-c和-n参数时,别超过Redis实例的承载能力
  • 可配合INFO stats查看Redis实时指标,验证测试结果

内容的提问来源于stack exchange,提问作者Lau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 23:48:24