搜公众号
推荐 原创 视频 Java开发 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库
Lambda在线 > 占小狼的博客 > Jedis vs Redisson,哪个更适合你的项目?

Jedis vs Redisson,哪个更适合你的项目?

占小狼的博客 2019-02-15
举报

本文主要内容对比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操作的简单示例:

 
   
   
 
  1. //Jedis设置key-value与set操作:

  2. Jedis jedis = …;

  3. jedis.set("key", "value");

  4. List<String> values = jedis.mget("key", "key2", "key3");


  5. //Redisson操作map:

  6. Redisson redisson =

  7. RMap map = redisson.getMap("my-map"); // implement java.util.Map

  8. map.put("key", "value");

  9. map.containsKey("key");

  10. 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会话管理器的实现。

来源:http://t.cn/E5jAlp1


-END-

 近期热文:








版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Jedis vs Redisson,哪个更适合你的项目?》的版权归原作者「占小狼的博客」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

举报