Redisson 3.23.0 现已发布,这是一个 Java 编写的 Redis 客户端,具备驻内存数据网格(In-Memory Data Grid)功能,并获得了 Redis 的官方推荐。
此版本更新内容如下:
Feature
- 增加了支持元素集合的 RBloomFilter contains() 和 add() 方法
- RMapCache 和 RLocalCachedMap 应在 Redis Cluster 7.0+ 中使用 sharded PubSub
- 增加了 lazyInitialization 设置
- RMapCache 对象增加 expireEntryIfNotSet()、expireEntries()、expireEntry()、expireEntriesIfNotSet() 方法
- 引入带有 removeEmptyEvictionTask() 设置的 MapCacheOptions 对象。如果在 entries eviction 过程完成时 map 为空,则从内存中删除 RMapCache eviction task。
Breaking change
- RMapCache 和 RLocalCachedMap 应在 Redis Cluster 7.0+ 中使用 sharded pubsub
- RMapCache 对象使用 MapCacheOptions 对象
Fixed
- 取消使用 cron 表达式调度的任务不会中断线程
- 如果任务被取消,RexecutorService 任务响应应该被删除
- RedisConnection.close() 方法具有私有可见性
- 在批处理执行过程中偶尔抛出的 ConcurrentModificationException
- 如果 Redis 端口没有在配置中定义,会抛出 StringIndexOutOfBoundsException
- 修正了 Spring Data Redis 模块中的遗漏方法: zRevRangeByLex()、time(TimeUnit)、zRemRangeByLex()、zLexCount()、rewriteConfig()、zRangeStoreByLex()、zRangeStoreRevByLex()、zRangeStoreByScore()、zRangeStoreRevByScore()、flushDb()、flushAll()、replicaOf()、replicaOfNoOne()
- 事务性 RMap.fastRemove() 方法抛出 UnsupportedOperationException
- RBloomFilter contains() 和 add() 方法在错误概率较高时不会返回准确结果
- RTopic 操作的"unknown command"响应处理不当的问题
- RLiveObjectService.delete(class,id) 方法不能删除索引。
- RMultimapCache 在过期前删除 entry 时抛出异常的问题。
- keepPubSubOrder 设置未被应用的问题。
更新说明:https://github.com/redisson/redisson/releases/tag/redisson-3.23.0