Redisson 4.7.0 现已发布,这是一个 Java 编写的 Redis 客户端,具备驻内存数据网格(In-Memory Data Grid)功能,并获得了 Redis 的官方推荐。
此版本更新内容如下:
Feature
- 新增
RMaps对象,用于对 Map 对象进行批量操作
- 新增基于数组的 Circular Buffer 对象
- 在 RRingBuffer 中新增 readNewest()、readOldest() 和 peekLast() 方法
- 在 RSet 中新增 countUnion()、countUnionApprox() 和 countDiff() 方法
- 在 RStream.read() 和 RStream.readGroup() 方法中新增 maxCount() 和 maxSize() 参数
- 在 RSearch 中添加了 getAliases() 方法
- 在 RQueue 和 RBlockingQueue 中添加了 move() 方法
- 为 RSetCache 添加了 SetExpiredListener
- 添加了 @RGetter 和 @RSetter 注解,以替代已弃用的 @RFieldAccessor
- 添加了 WorkerOptions.taskLateThreshold 设置
- 支持 Hibernate 7.4.x
- 在 RGcra 中添加了 trySetRate()、setRate()、getConfig() 和 tryAcquire() 方法,旧版 tryAcquire() 方法已弃用
- Kryo5Codec 开始使用 KeySetViewSerializer
- Netty 更新至 4.2.16.Final
- Fory lib 升级至 1.4.0
Improvement
RoundRobinLoadBalancer现在已实现发布/订阅负载均衡。
failedSlaveNodeDetector设置现在仅应用于从节点
FailedNodeDetector实例现按客户端分别创建,而非共享
- 从
redisson-spring-boot-starter中移除了冗余的junit-bom导入
- protobuf-java 库已更新至 4.35.1版本
- zstd-jni lib 已更新至 1.5.7-12 版本
- lz4-java lib 已更新至 1.11.1 版本
- jackson-dataformat-msgpack lib 已更新至 0.9.12 版本
- 在
redisson-micronaut-30模块中将 micronaut-inject lib 更新至 3.10.6 版本
Fixed
- JCache 回退模式对某些方法不起作用
- JCache 回退模式无法处理错误的密码加密格式
EvictionTask取消操作的竞态条件
- 即使无法访问从节点,也应注册主节点(4.6.1 版本以来的回归问题)
- 集群懒加载会导致调用线程无限期地停滞
- 如果重新注册过时的主节点条目,集群懒加载会导致自死锁
- 如果从节点未使用,集群监控器会频繁报错“added slaves detected”的信息
- 已发现的节点无法从集群配置端点继承用户名
- 如果缺少订阅条目,pubsub 信号量会泄漏
- read lock renewal entr 泄漏
tryLock()方法抛出超时异常,并且redisson_lock_queue、redisson_lock_timeout键未被移除
- 如果在事务中重复使用相同的名称,则无法检测到编解码器不匹配
RedissonTransactionalBucket.isEquals()方法中的ByteBuf泄漏
RMap.entrySet().contains()方法始终返回 false
RSetMultimap.fastRemoveValueAsync()方法始终返回 0
- 如果没有订阅,
RReliableTopic.removeAllListeners()方法会抛出 NPE
redisson-hibernate-72模块中的isMinimalPutsEnabledByDefault()方法应返回 false
更新说明:https://github.com/redisson/redisson/releases/tag/redisson-4.7.0