Redis Java Client选型-Jedis Lettuce Redisson

目录

1. 目标

2. 选型过程

2.1. 待选集合

2.2. 对比列表

 2.3. 确定选型的考虑角度


1. 目标

针对redis java client,从多角度进行选型对比,以便选择符合业务要求的redis client。

2. 选型过程

2.1. 待选集合

依据redis官网对client的标记进行选择。

推荐的client使用star标记。最近持续维护的client使用smile标记.

待选集合:Jedis,Lettuce,Redisson。

2.2. 对比列表

JedisLettuceRedisson
地址https://github.com/xetorthio/jedisLettucehttps://github.com/redisson/redisson
what小且健全的redis java客户端,支持redis的所有特性和命令,如事务、管道、发布订阅。线程安全的redis客户端,封装同步、异步、交互API。不执行阻塞和事务操作时,多线程可共享连接。线程安全的redis客户端,支持多场景,提供基于redis的某些分布式服务解决方案
实现与使用实现简单,使用简单实现较复杂,使用简单实现复杂,使用简单
网络阻塞IONettyNetty
redis命令特性支持redis命令与特性提供健全的支持redis命令与特性支持redis命令和特性支持
抽象封装程度没有做特别的抽象,特性使用是否正确依赖使用者。同步、异步、交互场景封装丰富的数据模型、分布式服务、特性的封装,第三方框架的扩展实现
操作的维度指令维度的操作指令维度的操作使用对象、服务将redis指令和业务分离,对象维度的操作,使用更方便,没有使用指令灵活,支持redisClient执行指令;分布式服务特性缺乏管理平台。
redis连接每次操作均需要从连接池中获取连接,线程间不可以共享连接,高并发时需要考虑连接过多对client和server的影响。共享连接,连接是long-lived和线程安全的,而且自动重连共享连接
client分片 支持,提供实现 不支持,未提供实现 不支持,针对特殊数据模型提供数据分片
read slave未找到使用slave执行read指令的API,但可以自行实现支持slave执行read指令支持slave执行read指令
排他+超时 支持 支持需要使用封装的数据模型
社区维护社区维护好,版本更新快社区维护一般,版本更新较慢分为企业版和开源版,维护好,版本更新快
特性表Sorting
Connection handling
Commands operating on any kind of values
Commands operating on string values
Commands operating on hashes
Commands operating on lists
Commands operating on sets
Commands operating on sorted sets
Transactions
Pipelining
Publish/Subscribe
Persistence control commands
Remote server control commands
Connection pooling
Sharding (MD5, MurmurHash)
Key-tags for sharding
Sharding with pipelining
Scripting with pipelining
Redis Cluster
synchronous, asynchronous and reactive usage
Redis Sentinel
Redis Cluster
SSL and Unix Domain Socket connections
Streaming API
CDI and Spring integration
Codecs (for UTF8/bit/JSON etc. representation of your data)
multiple Command Interfaces
各种封装的对象 服务 其他框架的扩展实现

 图示Redison的价值,来自redisson wiki

 

 2.3. 确定选型的考虑角度

 client连接数对redis性能影响的角度

连接数QPS
10012w
3w6w
6w5w

所以若每秒使用redis次数达数万,不建议用Jedis,因为不仅降低redis性能,而且降低client所在服务器的性能。

可选择Lettuce,Redisson。

client分片的角度  

 如果不使用redis cluster,而是采用client端分片,则选择Jedis。

隔离redis具体使用的角度

Redisson,将redis指令与业务隔离,直接使用数据模型、特性封装、分布式服务,而不用关心使用哪些redis指令。

其他文章

Spring-Redis基础使用篇

Spring-Redis-验证lettuce共享和独占连接特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值