Feature – RFunction
object added (requires Redis 7.0+)
Feature – pollLastEntriesFromAny()
and pollFirstEntriesFromAny()
methods added to RScoredSortedSet object (requires Redis 7.0+)
Feature – expireIfSet()
, expireIfNotSet()
, expireIfGreater()
and expireIfLess()
methods added to RExpirable interface (requires Redis 7.0+)
Feature – checkLockSyncedSlaves
setting added
Feature – getAndExpire
and getAndClearExpire()
methods added to RBucket
object (requires Redis 6.2.0+)
Feature – pollFirstFromAny()
and pollLastFromAny()
methods with timeout and count added to RScoredSortedSet
object (requires Redis 7.0+)
Feature – pollFirst()
and pollLast()
methods with timeout and count added to RScoredSortedSet
object (requires Redis 7.0+)
Feature – addAllIfLess()
, addAllIfGreater()
, addAllIfExist()
, addAllIfAbsent()
methods added to RScoredSortedSet
object
Feature – RExpirable.expire(Duration)
method added
Feature – RExpirable.expireTime()
method added (requires Redis 7.0+)
Feature – range()
, rangeReversed()
, entryRange()
, entryRangeReversed()
methods with limit parameter added to RTimeSeries
object
Feature – TransactionalOperation.syncSlaves
setting added
Feature – pollFirstFromAny()
and pollLastFromAny()
methods added to RBlockingQueue object (requires Redis 7.0+)
Improvement – read-only cached scripts should be executed on slaves (requires Redis 7.0+)
Improvement – SORT_RO command is used for slave nodes (requires Redis 7.0+)
Improvement – decrease size of allocated data by RPermitExpirableSemaphore
Fixed – RedissonLocalCachedMap.clearLocalCache()
method throws IllegalArgumentException
Fixed – RedissonMultiLock doesn’t work properly with RedissonSpinLock
Fixed – SlaveConnectionPool no available Redis entries error occurs in Cluster mode
Fixed – RKeys.deleteByPattern()
method does not always delete keys correctly
Fixed – expireAt(Instant)
method of RExpirableReactive and RExpirableRx
interfaces doesn’t work
Fixed – wrong detection of added and removed slots in Redis Cluster mode
Fixed – RScoredSortedSet.addIfGreater()
and RScoredSortedSet.addIfLess()
methods always return false
Fixed – Spring Data Connection in multi mode causes thread stuck (regression since 3.16.7)
Fixed – Sentinel username setting is not applied (thanks to @nicolas-tg-ch)
Fixed – RTimeSeries doesn’t handle same values for different timestamps
Fixed – Quarkus environment variables aren’t parsed correctly
Fixed – check expiration before release in RPermitExpirableSemaphore (thanks to @randomVariable2)
Fixed – RedisTimeoutException: Command execution timeout for command: (PING) (regression since 3.16.3)
Fixed – wrong wait time calculation in RedissonMultiLock lock method causes deadlock
Fixed – RLocalCachedMap throws NPE if cache update listener receives message during init
Fixed – AsyncRemoteProxy throws Redisson is shutdown exception
Fixed – RedisClusterNode.clusterSlots() method throws Exception