spring redis 客户端分片 非ShardedJedis实现

在这里只说客户端分片。一般redis 分片都使用 ShardedJedis 进行。刚开始时,我们也采用此方案,但是发现不满足我们的性能要求,所以重新写了一个redis 客户端分片类。

ShardedJedis 客户端代码如下:

结果发现QPS徘徊在1.3万左右,怎么都上不去。

怀疑是,每次都调用 jedis.close() 方法导致的。但不确定,如果不调用 jedis.close(),有什么坑,听别人说,好像出现过连接泄露的问题,不敢采用。

没办法,我们重新实现了一个简单版本的redis 客户端分片。基于spring redis,就是简单的根据key 不同,来获取不同的 redisTemplate 进行操作。同样的配置,QPS 马上就上去了,压测达到5w+,随着机器的增加,性能也随之线性增加,已经满足项目要求了。

ShardedRedisClient 代码如下:

使用方式 可以采用spring xml 配置方式

spring  xml 配置

 


发表评论

电子邮件地址不会被公开。 必填项已用*标注