✅Redisson和Jedis有啥区别?如何选择?

典型回答

Redisson和Jedis是两个流行的Java客户端库,用于与Redis进行交互,其实在Redisson的官网上针对这两个产品做了比较全面的对比:https://redisson.org/feature-comparison-redisson-vs-jedis.html

一句话就是Jedis非常的轻量级,极其简单,可以认为就是把Redis的命令做了一下封装,而Redisson提供了更多高级特性和功能,整体也更加复杂一些。

以下是我基于官网上的资料做的简单整理:

  1. 分布式集合:
    • Redisson:提供多种Java集合对象的实现,包括Multimap、PriorityQueue、DelayedQueue等
    • Jedis:支持较少的分布式集合,大多只支持Map、Set、List等的基本命令。
  2. 分布式锁和同步器:
    • Redisson:支持常见的Java锁和同步器,如FairLock、MultiLock、Semaphore、CountDownLatch等。
    • Jedis:不支持。需要自己实现
  3. 分布式对象:
    • Redisson:实现了多种分布式对象,如Publish/Subscribe、BloomFilter、RateLimiter、Id Generator等。
    • Jedis:只支持基本的类型的基本命令,如AtomicLong、AtomicDouble、HyperLogLog等
  4. 高级缓存支持:
    • Redisson:提供多种高级缓存功能,支持Read-through/Write-through/Write-behind等策略。
    • Jedis:不支持这些高级缓存功能。
  5. API架构:
    • Redisson:支持实例线程安全、异步接口、响应式流接口和RxJava3接口。
    • Jedis:不支持。
  6. 分布式服务:
    • Redisson:提供ExecutorService、MapReduce、SchedulerService等服务。
    • Jedis:不支持这些分布式服务。
  7. 框架集成:
    • Redisson:支持Spring Cache、Hibernate Cache、MyBatis Cache等。
    • Jedis:仅支持Spring Session和Spring Cache。
  8. 安全性:
    • Redisson和Jedis:都支持认证和SSL。
  9. 自定义数据序列化:
    • Redisson:支持多种编解码器,如JSON、JDK序列化、Avro等。
    • Jedis:不支持JDK序列化或上述编解码器。

所以我们在选择的时候,如果需要高级特性如分布式锁、高级缓存支持或特定框架集成,Redisson可能是更好的选择。如果项目需要一个轻量级的解决方案,且不需要高级功能,Jedis可能是合适的选择。

原文: https://www.yuque.com/hollis666/xkm7k3/fuxcixcwvy5gsxxg