Redis客户端-Redisson
2020-12-24 14:34:10 阿炯

Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Data Grid),系Redis官方推荐。


Redisson - Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, local cache...

Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。


兼容 Redis 2.6+与JDK 1.6+,使用Apache License V2.0授权协议。

特点

1. 支持云托管服务模式(同时支持亚马逊云的ElastiCache Redis和微软云的Azure Redis Cache),自动发现主节点变化

2. 支持Redis集群模式(同时支持亚马逊云的ElastiCache Redis Cluster和微软云的Azure Redis Cache),自动发现主从节点、自动更新状态和组态拓扑、自动发现槽的变化

3. 支持Redis哨兵模式,自动发现主、从和哨兵节点,自动更新状态和组态拓扑

4. 支持Redis主从模式

5. 支持Redis单节模式

6. 多节点模式均支持读写分离:从读主写,主读主写,主从混读主写

7. 所有对象和接口均支持异步操作

8. 自行管理的弹性异步连接池

9. 所有操作线程安全

10. 支持LUA脚本

11. 提供分布式对象
通用对象桶(Object Bucket)、二进制流(Binary Stream)、地理空间对象桶(Geospatial Bucket)、BitSet、原子整长形(AtomicLong)、原子双精度浮点数(AtomicDouble)、话题(订阅分发)、布隆过滤器(Bloom Filter)和基数估计算法(HyperLogLog)

12. 提供分布式集合
映射(Map)、多值映射(Multimap)、集(Set)、列表(List)、有序集(SortedSet)、计分排序集(ScoredSortedSet)、字典排序集(LexSortedSet)、列队(Queue)、双端队列(Deque)、阻塞队列(Blocking Queue)、有界阻塞列队(Bounded Blocking Queue)、 阻塞双端列队(Blocking Deque)、阻塞公平列队(Blocking Fair Queue)、延迟列队(Delayed Queue)、优先队列(Priority Queue)和优先双端队列(Priority Deque)

12. 提供分布式锁和同步器
可重入锁(Reentrant Lock)、公平锁(Fair Lock)、联锁(MultiLock)、红锁(RedLock)、读写锁(ReadWriteLock)、信号量(Semaphore)、可过期性信号量(PermitExpirableSemaphore)和闭锁(CountDownLatch)

12. 提供分布式服务
分布式远程服务(Remote Service, RPC)、分布式实时对象(Live Object)服务、分布式执行服务(Executor Service)、分布式调度任务服务(Scheduler Service)和分布式映射归纳服务(MapReduce)

13. 支持Spring框架

14. 提供Spring Cache集成

15. 提供Hibernate Cache集成

16. 提供JCache实现

17. 提供Tomcat Session Manager

18. 提供Spring Session集成

19. 支持异步流方式执行操作

20. 支持Redis管道操作(批量执行)

21. 支持安卓(Andriod)系统

22. 支持断线自动重连

23. 支持命令发送失败自动重试

24. 支持OSGi

25. 支持采用多种方式自动序列化和反序列化(Jackson JSON, Avro, Smile, CBOR, MsgPack, Kryo, FST, LZ4, Snappy和JDK序列化)

26. 超过1000个单元测试


最新版本:3.14
Redisson 3.14.1 已发布,本次更新内容包括:

新功能:增加了LocalCachedMapOptions.storeCacheMiss选项,用于在本地缓存中存储缓存遗漏。在 RMapCache 接口的trySetMaxSize以及setMaxSize方法中加入了 LFU 驱逐算法。

改进:RedisNodes ping 结果检查优化。提升 RMap 对象的 keySet().isEmpty() 和 values().isEmpty() 方法效率。

Bug 修复
修复如果在 LOADING 中新发现的 slave 在内存状态下加载数据集,发生连接泄漏的问题。
修复RMap.putIfAbsent()方法不检查值是否为空的问题。
Apache Tomcat Valve 对象应该被添加到上下文管道中,而不是引擎的管道中。
修复RLock.lock()方法调用过程中没有遵守从属同步超时的问题。
修复 ConnectionWatchdog 可能导致连接泄漏的问题。
修复Redisson.shutdown()方法可能抛出 RejectedExecutionException 的问题
修复count()和addAll()的方法RScoredSortedSetReactive和RScoredSortedSetRx接口抛出 ClassCastException 异常的问题。
在 Spring Redis 数据模块中,应该使用GEORADIUS_RO命令代替GEORADIUS。
修复 Spring Data RedisRedissonConnection.del()方法在Redis集群上的管道中不起作用的问题。
修复RLocalCachedMap.putAll()以错误的方法更新用于 Reconnection.LOAD 策略的日志的问题。
修复redisRepository.opsForSet().distinctRandomMembers()方法可能抛出 ClassCastException 的问题。

更多详细更新信息请点击此处

项目主页:https://github.com/redisson