Jedis vs Redisson,到底怎么选?

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 本文主要内容对比Redis的两个框架:Jedis与Redisson,分析各自的优势与缺点,为项目中Java缓存方案中的Redis编程模型的选择提供参考。Jedis与RedissonJedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;

image.png

本文主要内容对比Redis的两个框架:Jedis与Redisson,分析各自的优势与缺点,为项目中Java缓存方案中的Redis编程模型的选择提供参考。


Jedis与Redisson

Jedis是Redis的Java实现的客户端,其API提供了比较全面的Redis命令的支持;


Redisson实现了分布式和可扩展的Java数据结构,和Jedis相比,功能较为复杂,不仅支持字符串操作,且还支持排序、事务、管道、分区等Redis特性。


Redisson的宗旨是促进使用者对Redis的关注分离,从而让使用者能够将精力更集中地放在处理业务逻辑上。


编程模型

Jedis中的方法调用是比较底层的暴露的Redis的API,也即Jedis中的Java方法基本和Redis的API保持着一致,了解Redis的API,也就能熟练的使用Jedis。


而Redisson中的方法则是进行比较高的抽象,每个方法调用可能进行了一个或多个Redis方法调用。

如下分别为Jedis和Redisson操作的简单示例:

Jedis jedis = …;  
jedis.set("key", "value");  
List<String> values = jedis.mget("key", "key2", "key3");

Redisson操作map:

Redisson redisson = …  
RMap map = redisson.getMap("my-map"); // implement java.util.Map  
map.put("key", "value");  
map.containsKey("key");  
map.get("key");

可伸缩性


Jedis使用阻塞的I/O,且其方法调用都是同步的,程序流需要等到sockets处理完I/O才能执行,不支持异步。Jedis客户端实例不是线程安全的,所以需要通过连接池来使用Jedis。


Redisson使用非阻塞的I/O和基于Netty框架的事件驱动的通信层,其方法调用是异步的。Redisson的API是线程安全的,所以可以操作单个Redisson连接来完成各种操作。


数据结构

Jedis仅支持基本的数据类型如:String、Hash、List、Set、Sorted Set。


Redisson不仅提供了一系列的分布式Java常用对象,基本可以与Java的基本数据结构通用。


还提供了许多分布式服务,其中包括(BitSet, Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, Bloom filter, Remote service, Spring cache, Executor service, Live Object service, Scheduler service)。


在分布式开发中,Redisson可提供更便捷的方法。


第三方框架整合

Redisson提供了和Spring框架的各项特性类似的,以Spring XML的命名空间的方式配置RedissonClient实例和它所支持的所有对象和服务;


Redisson完整的实现了Spring框架里的缓存机制;


Redisson在Redis的基础上实现了Java缓存标准规范;


Redisson为Apache Tomcat集群提供了基于Redis的非黏性会话管理功能。该功能支持Apache Tomcat的6、7和8版。


Redisson还提供了Spring Session会话管理器的实现。



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
8月前
|
NoSQL Java 数据库连接
springboot整合Redis中连接池jedis与lettuce的对比和实现
springboot整合Redis中连接池jedis与lettuce的对比和实现
1191 0
|
6月前
|
NoSQL Java Redis
jedis 与 redission 实现分布式锁
jedis 与 redission 实现分布式锁
142 4
|
8月前
|
存储 NoSQL Java
Jedis
Jedis
73 0
|
NoSQL Java Redis
Redisson
redisson是架设在redis基础上的java驻内存网络
|
8月前
|
NoSQL Redis 数据安全/隐私保护
Redisson的使用
Redisson的使用
50 0
|
8月前
|
NoSQL Java Redis
Redisson 分布式锁的正确使用
你会正确使用分布式锁吗?
2214 0
Redisson 分布式锁的正确使用
|
NoSQL Java Redis
jedis分布式锁实现
jedis分布式锁实现
163 0
|
监控 NoSQL 算法
redisson中的分布式锁解读(上)
redisson中的分布式锁解读
|
NoSQL Java 测试技术
Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson
Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson
279 0

热门文章

最新文章