Redis Primer(1)基于JedisPool的Redis hset并发性能测试

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: Redis Primer(1)基于JedisPool的Redis hset并发性能测试作者:钟超(Poechant)邮箱:zhongchao.

Redis Primer(1)基于JedisPool的Redis hset并发性能测试


  • Redis Server 与 Redis Client 位于同一台机器(从而排除带宽限制带来的影响);
  • Redis Server 版本:2.6.7;
  • Redis Client API:Jedis 2.1.0,使用 JedisPool(依赖包使用 commons-pool-1.5.3.jar);

1. 测试一:单线程客户端基于不同Key和Value长度

1.1. 测试内容
  • 不变量:
    • JedisPool 参数确定
      • minIdle = 0
      • maxIdle = 50
      • maxActive = 500
    • 测试 hset 操作
    • Field 长度为 32 bytes
  • 控制变量:
    • Key 长度;
    • Value 长度;
  • 测试内容:
    • 吞吐量(每秒访问次数)
1.2. 测试结果

Key 长度从 1 到 256 逐次 2 倍递增, Value 长度从 8 到 32768 逐次 4 倍递增。

  • 以 Key 长度为 X 轴绘制测试结果:

Resize icon

  • 以 Value 长度为 X 轴绘制测试结果:

Resize icon

1.3. 结论

Throughput 随 Key 长度变化不大(更大范围内的 Key 长度没有测试,因为一般情况下 Key 超过 256 字节的情况较少,请本人使用方式也符合该范围),但与 Value 长度相关性极大(范围较大,因本人的应用场景中 Value 值较大)。

1.4. 建议
  • 减少每个查询中的访问次数(优化查询,类似于 Database 中优化 SQL 语句);
  • 要尽可能的减小 Value。

测试二:单线程客户端基于不同连接池参数

2.1. 测试内容
  • 不变量:
    • 测试 hset 操作
    • Key 长度为 32 bytes
    • Field 长度为 32 bytes
    • Value 长度为 256 bytes
  • 控制变量
    • maxIdle
    • maxActive
  • 测试内容
    • 吞吐量(每秒访问次数)
2.2. 测试结果

maxActive 从 25 到 300 每次递增 25, maxIdle 从 50 到 450 每次递增 100。

  • 以 maxActive 长度为 X 轴绘制测试结果:

Resize icon

  • 以 maxIdle 长度为 X 轴绘制测试结果:

Resize icon

2.3. 结论

在目前的测试参数范围内,差别不大,或许需要进一步测试。从该测试结果看 maxIdle=25 且 maxActive=250 的 JedisPool 设置能够带来最大的 hset(32bits, 32bits, 256bits) 吞吐量。

2.4. 建议
  • 采用 maxIdle=25 且 maxActive=250 的 JedisPool 设置。

测试三:多线程客户端不同hset次数

3.1. 测试内容
  • 不变量:
    • 测试 hset 操作
    • Key 长度为 32 bytes
    • Field 长度为 32 btyes
    • Value 长度为 20480 bytes
  • 控制变量
    • hset 操作次数从 10000 到 1000000
  • 测试内容
    • 吞吐量(每秒访问次数)
2.3. 测试结果

hset 操作次数从 10000 到 5120 500

Resize icon

2.4. 结论与建议
  • 用多线程的客户端进行压力测试;
  • Redis 的并发性能相当不错,2KB 的数据每秒可以写入 60000 多次,平均每秒 120 MB,960 Mb,约 1Gb。
  • 如果测试小数据,应该能达到 100,000/s 以上的并发量

-

转载请注明来自(Poechant)的 CSDN 博客:http://blog.csdn.net/poechant ,作者微博:weibo.com/lauginhom

-

目录
相关文章
|
6月前
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
7月前
|
缓存 NoSQL 测试技术
Redis压测脚本及持久化机制
Redis压测脚本及持久化机制简介: Redis性能压测通过`redis-benchmark`工具进行,可评估读写性能。持久化机制包括无持久化、RDB(定期快照)和AOF(操作日志),以及两者的结合。RDB适合快速备份与恢复,但可能丢失数据;AOF更安全,记录每次写操作,适合高数据安全性需求。两者结合能兼顾性能与安全性,建议同时开启并定期备份RDB文件以确保数据安全。
142 9
|
缓存 NoSQL Redis
【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)
【Azure Redis 缓存】使用StackExchange.Redis,偶发ERROR - Timeout performing HSET (15000ms)
113 0
|
11月前
|
缓存 NoSQL 关系型数据库
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
本文详解缓存雪崩、缓存穿透、缓存并发及缓存预热等问题,提供高可用解决方案,帮助你在大厂面试和实际工作中应对这些常见并发场景。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:如何解决Redis缓存雪崩、缓存穿透、缓存并发等5大难题
|
10月前
|
缓存 NoSQL Redis
Redis经典问题:数据并发竞争
数据并发竞争是大流量系统(如火车票系统、微博平台)中常见的问题,可能导致用户体验下降甚至系统崩溃。本文介绍了两种解决方案:1) 加写回操作加互斥锁,查询失败快速返回默认值;2) 保持多个缓存备份,减少并发竞争概率。通过实践案例展示,成功提高了系统的稳定性和性能。
|
12月前
|
NoSQL 测试技术 Redis
Redis 性能测试
10月更文挑战第21天
221 2
|
12月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
144 3
|
12月前
|
存储 Prometheus NoSQL
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
大数据-44 Redis 慢查询日志 监视器 慢查询测试学习
152 3
|
12月前
|
缓存 NoSQL Ubuntu
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
大数据-39 Redis 高并发分布式缓存 Ubuntu源码编译安装 云服务器 启动并测试 redis-server redis-cli
170 3
|
NoSQL Java Linux
Redis6入门到实战------ 六、Redis_Jedis_测试
这篇文章介绍了如何使用Jedis客户端连接Redis,并进行基本的数据类型操作测试,包括字符串、列表、集合、哈希和有序集合的相关API使用示例。
Redis6入门到实战------ 六、Redis_Jedis_测试

热门文章

最新文章