Redisson 3.24.1 现已发布,这是一个 Java 编写的 Redis 客户端,具备驻内存数据网格(In-Memory Data Grid)功能,并获得了 Redis 的官方推荐。
此版本更新内容如下:
Feature
- 在
MapOptions
对象中添加writerRetryAttempts
和writerRetryInterval
设置 RSortedSet
实现了RExpirable
- 添加了
RBlockingQueue.pollFromAnyWithName()
方法 - 添加基于 apache commons-compress 的
org.redisson.codec.LZ4CodecV2
编解码器 - Spring 6.1.0 中引入了 Redis 缓存异步方法实现
- 添加了
tcpKeepAliveCount
,tcpKeepAliveIdle
,tcpKeepAliveInterval
,tcpUserTimeout
设置 - 添加了
subscriptionTimeout
设置
Fixed
- RedissonClient.shutdown() 方法应在超时内完成
- 在 Redis 集群中,RBuckets.trySet()、RBuckets.set()、RBuckets.get()、RKeys.touch()、RKeys.unlink()、RKeys.delete()、RKeys.countExists() 方法在故障转移后可能会挂起的问题。
- JCache 的 containsKey()、getAll() 和 removeAll() 方法的异常没有被打包在 CacheException 中。
- 命令执行超时的问题: (PING)
- RBucketReactive.delete() 方法在 Quarkus Native 模式下不起作用的问题
- Spring Boot 2.7.x+ 的自动配置问题
- 如果指定了 NameMapper 对象,RSortedSet 无法正确工作的问题
- 如果指定了 NameMapper 对象,RPriorityQueue 的锁名不正确的问题。
- RMapCache.expireEntries() 和 expireEntry() 方法不能正确更新 maxIdle 参数。
- non-volatile RedisConnection.lastUsageTime field 可能会导致空闲时间计算不正确
- 即使锁所有者线程调用了 RLock.unlock()方法,在极少数情况下仍会发生试图解锁当前线程未锁定的锁的错误。
- RCountDownLatch 在倒计时达到 0 时仅通知第一个异步监听器
- RStream.trim() 和 trimNonStrict() 方法无法在 Redis 6.2+ 中工作的问题
- RReadWriteLock.readLock().isLocked()方法在被写入锁所有者线程获取时返回错误结果的问题
- 如果 lazyInitialization = true,RedissonClient.getLiveObjectService() 方法会导致尝试连接 Redis。
更新说明:https://github.com/redisson/redisson/releases/tag/redisson-3.24.1