Redis性能基准测试

基准环境

  • 机器:AWS EC2 c4.8xlarge(同机部署 Redis Server 与 ReJSONBenchmark 工具,通过网络栈连接)
  • 测试工具:ReJSONBenchmark(Go 实现、可配置并发)
  • 模式:非管线(non-pipelined)
  • 版本:RedisJSON Preview(尚未完全优化)

基线对比:PING

工具 并发 吞吐 (req/s) 平均延迟 (ms) 99% 延迟 (ms)
redis-benchmark 50 140,587 ≤1 ≤1
ReJSONBenchmark 16 116,292 0.14 0.21

洞察:Go 测试工具在 PING 下吞吐略低于 redis-cli,但延迟依旧亚毫秒级。

JSON 操作性能

测试场景 操作 吞吐 (req/s) 平均延迟 (ms)
空字符串(2B) JSON.SET / JSON.GET 80,277 / 92,191 0.20 / 0.17
小对象(380B, pass-100.json) SET 根 / GET 根 41,513 / 48,374 0.38 / 0.33
GET 标量路径 94,801 0.17
GET 子文档 81,634 0.19
中等数组(1.4 KB) SET 根 / GET 根 16,117 / 15,194 0.99 / 1.05
GET 元素 / 子字段 78K--99K ~0.20
大对象(3.5 KB) SET 根 / GET 根 14,239 / 8,366 1.12 / 1.91
超大文档(18 KB / 40 KB) SET 根 / GET 根 (18 KB) 3,394 / 891 4.71 / 17.92
SET 根 / GET 根 (40 KB) 1,625 / 443 9.84 / 36.08
数值运算 NUMINCRBY / NUMMULTBY 78,640 / 77,171 ~0.20

结论

  • 文档越小,吞吐越高、延迟越低;
  • 部分路径操作(标量、子文档)性能远超访问整个根文档;
  • 数值原子操作也能保持 >77K req/s 的高吞吐。

与 Server-Side Lua 脚本对比

  • 根级 SET/GET:RedisJSON、Lua(cjson/cmsgpack) 性能相近(80--90K req/s)。

  • 路径级 SET/GET

    • RedisJSON:直接内存访问,无需整体解码,保持 >75K req/s 且延迟稳定;
    • Lua:每次都解码整个对象,随着文档增大性能急剧下降(大文档时 <20K req/s)。

洞察:RedisJSON 原生命令在局部更新/读取场景下,解码与操作开销大幅低于基于脚本的实现。

小结

  1. 极低延迟:空字符串与小对象下,延迟普遍 <0.2 ms。
  2. 高吞吐量:简单路径查询可达 ~100K req/s;数值运算也能维持 >75K req/s。
  3. 可扩展性:文档体量增大时,根级操作延迟线性上升,但仍可满足毫秒级需求;部分路径访问保持亚毫秒稳定。
  4. 优于脚本:相比 Lua 全文解码,RedisJSON 的"就近解码"带来显著性能与资源优势。

通过本次基准,我们可以清晰看到 RedisJSON 在不同载荷与操作模式下的性能特性,为生产环境评估提供了可靠参考。

相关推荐
这个DBA有点耶33 分钟前
数据库数据同步解决方案怎么选?6款主流工具横向对比与信创选型指南
数据库·架构·dba
刃神太酷啦42 分钟前
Redis 核心进阶:哨兵、集群、缓存问题与分布式锁详解----《Hello Redis!》(6)
linux·c语言·数据库·c++·redis·分布式·缓存
小雷信息医学43 分钟前
不会写复杂代码也能发 SCI?手把手教你用 InSpireR 交互系统一键提取、合并与导出临床科研宽表【第三章】
数据库
旺仔不是程序员1 小时前
复合索引最左前缀原则:PostgreSQL 的 WHERE 为什么必须命中第一列
数据库·后端·sql
旺仔不是程序员1 小时前
字段类型不一致:PostgreSQL 报错与索引失效的第一元凶
数据库·后端·sql
白远山1 小时前
货运跑腿搬家平台开发实战:从需求分析到落地部署指南
数据库·数据挖掘·需求分析
geovindu2 小时前
sql: Data Modeling Patterns
数据库·sql·设计模式·sqlserver
上海蓝色星球2 小时前
蓝色星球NG-AIOS新型AI工业操作系统重磅发布——以本体智能为内核,重构“AI+制造“新范式
大数据·数据库·人工智能·机器人
写后端的胖头鱼2 小时前
一文学会单元测试之----Junit
junit·单元测试
瀚高PG实验室2 小时前
瀚高数据库如何克隆表
数据库·sql·postgresql·瀚高数据库