✅Redisson和Jedis有啥区别?如何选择?
典型回答
Redisson和Jedis是两个流行的Java客户端库,用于与Redis进行交互,其实在Redisson的官网上针对这两个产品做了比较全面的对比:https://redisson.org/feature-comparison-redisson-vs-jedis.html
一句话就是Jedis非常的轻量级,极其简单,可以认为就是把Redis的命令做了一下封装,而Redisson提供了更多高级特性和功能,整体也更加复杂一些。
以下是我基于官网上的资料做的简单整理:
- 分布式集合:
- Redisson:提供多种Java集合对象的实现,包括Multimap、PriorityQueue、DelayedQueue等
- Jedis:支持较少的分布式集合,大多只支持Map、Set、List等的基本命令。
- 分布式锁和同步器:
- Redisson:支持常见的Java锁和同步器,如FairLock、MultiLock、Semaphore、CountDownLatch等。
- Jedis:不支持。需要自己实现
- 分布式对象:
- Redisson:实现了多种分布式对象,如Publish/Subscribe、BloomFilter、RateLimiter、Id Generator等。
- Jedis:只支持基本的类型的基本命令,如AtomicLong、AtomicDouble、HyperLogLog等
- 高级缓存支持:
- Redisson:提供多种高级缓存功能,支持Read-through/Write-through/Write-behind等策略。
- Jedis:不支持这些高级缓存功能。
- API架构:
- Redisson:支持实例线程安全、异步接口、响应式流接口和RxJava3接口。
- Jedis:不支持。
- 分布式服务:
- Redisson:提供ExecutorService、MapReduce、SchedulerService等服务。
- Jedis:不支持这些分布式服务。
- 框架集成:
- Redisson:支持Spring Cache、Hibernate Cache、MyBatis Cache等。
- Jedis:仅支持Spring Session和Spring Cache。
- 安全性:
- Redisson和Jedis:都支持认证和SSL。
- 自定义数据序列化:
- Redisson:支持多种编解码器,如JSON、JDK序列化、Avro等。
- Jedis:不支持JDK序列化或上述编解码器。
所以我们在选择的时候,如果需要高级特性如分布式锁、高级缓存支持或特定框架集成,Redisson可能是更好的选择。如果项目需要一个轻量级的解决方案,且不需要高级功能,Jedis可能是合适的选择。
原文: https://www.yuque.com/hollis666/xkm7k3/fuxcixcwvy5gsxxg