Skip to content

Releases: redisson/redisson

redisson-3.25.1

18 Dec 09:20
Compare
Choose a tag to compare

Improvement - JDK21 Virtual Threads compatibility

Fixed - EvictionTask keeps running even after destroy() method called
Fixed - Sprint Data Redis throws Subscription registration timeout exceeded
Fixed - Sprint Data Redis RedisMessageListenerContainer.addMessageListener() method hangs if called after container start
Fixed - NPE is thrown if lazyInitialization = true
Fixed - PriorityQueue methods may hang due to unreleased lock after exception
Fixed - RMap.getAll() method throws IndexOutOfBoundsException
Fixed - natMapper isn't applied to slaves and master nodes at start in Sentinel mode
Fixed - method invocation hangs after failover if retryInterval = 0
Fixed - transactional Map and MapCache keySet method returns inconsistent state
Fixed - Multilock lock method doesn't work properly with non-MILLISECONDS TimeUnit

redisson-3.25.0

05 Dec 09:44
Compare
Choose a tag to compare

Feature - RESP3 protocol support. protocol setting added
Feature - Spring Data Redis 3.2.0 implementation
Feature - RSetCacheV2, RSetV2 objects with more effecient partitioning in Cluster added in PRO version

Improvement - SLF4j updated to 2.0.9 version

Fixed - RFunction/RScript keys parameter accepts only String values
Fixed - IP address instead of hostname is used in sentinel mode with SSL connection
Fixed - Resources leak in Version.logVersion() method
Fixed - RLiveObjectService.persist() method with varargs hangs in cluster mode
Fixed - Redisson connection process may hang at start in some cases
Fixed - EntryExpiredListener isn't invoked by RMapCache instance in Redis Cluster 7+
Fixed - slave node in sentinel mode can't be recovered if it's a master node
Fixed - JsonJacksonCodec fails to serialize Throwable on Java17 (thanks to @tomjankes)
Fixed - RBlockingDeque.move() throws an exception for empty result
Fixed - RScoredSortedSet.pollFirstEntries(count) and pollLastEntries(count) methods return wrong result
Fixed - BZMPOP command timeout isn't applied
Fixed - getBlockingDeque(), getDeque(), getPriorityDeque(), getPriorityBlockingDeque() throw NoClassDefFoundError if JDK version < 21
Fixed - RLocalCachedMap.containsKey() method does not work properly if storeCacheMiss = true
Fixed - RedissonRemoteService exceptions handling (thanks to @mrmx)
Fixed - RSearch.info() method throws NumberFormatException
Fixed - HttpSessionListener.sessionDestroyed() method isn't called if Tomcat Session deleted by the node which didn't create it
Fixed - LZ4CodecV2 isn't compatible with LZ4Codec
Fixed - RSearch GroupBy.reduce alias isn't applied (thanks to @arjunE1395)

redisson-3.24.3

24 Oct 11:50
Compare
Choose a tag to compare

Feature - Helidon 4.0 integration

Fixed - ERR invalid expire time error is thrown during RLock.unlock() call if retryAttempts = 0

redisson-3.24.2

22 Oct 10:38
Compare
Choose a tag to compare

Fixed - IllegalArgument timeout... error is throw during Redisson shutdown
Fixed - Intermittent Exception when creating RLocalCachedMap (regression since 3.24.1)
Fixed - RSearch.aggregate() doesn't apply withCursor() and sortBy() options correctly
Fixed - MOVED redirection loop detected error should be thrown only if both source and target addresses are equal

redisson-3.24.1

18 Oct 13:23
Compare
Choose a tag to compare

Feature - writerRetryAttempts and writerRetryInterval settings added to MapOptions object (thanks to @zzhlhc)
Feature - RSortedSet implements RExpirable
Feature - RBlockingQueue.pollFromAnyWithName() method added
Feature - org.redisson.codec.LZ4CodecV2 codec based on apache commons-compress added
Feature - Redis Cache async methods implementation introduced in Spring 6.1.0
Feature - tcpKeepAliveCount, tcpKeepAliveIdle, tcpKeepAliveInterval, tcpUserTimeout settings added
Feature - subscriptionTimeout setting added

Fixed - RedissonClient.shutdown() method should be completed within timeout (thanks @dgolombek)
Fixed - RBuckets.trySet(), RBuckets.set(), RBuckets.get(), RKeys.touch(), RKeys.unlink(), RKeys.delete(), RKeys.countExists() methods may hang after failover in Redis cluster
Fixed - exceptions aren't wrapped in CacheException for containsKey(), getAll() and removeAll() methods of JCache
Fixed - Command execution timeout for command: (PING)
Fixed - RBucketReactive.delete() method doesn't work in Quarkus Native mode (thanks to @DicksengA)
Fixed - auto configuration with Spring Boot 2.7.x+
Fixed - RSortedSet doesn't work correctly if NameMapper object was specified
Fixed - RPriorityQueue has incorrect lock name if NameMapper object was specified
Fixed - RMapCache.expireEntries() and expireEntry() methods don't update maxIdle parameter properly
Fixed - non-volatile RedisConnection.lastUsageTime field may cause incorrect idle time calculation
Fixed - attempt to unlock lock, not locked by current thread error occurs in rare cases even if RLock.unlock() method called by lock owner thread
Fixed - RCountDownLatch only notifying the first async listener after countdown reaches 0 (thanks to @Sinbios)
Fixed - RStream.trim() and trimNonStrict() methods don't work with Redis 6.2+
Fixed - RReadWriteLock.readLock().isLocked() method returns incorrect result if acquired by writeLock owner thread
Fixed - RedissonClient.getLiveObjectService() method causes an attempt to connect to Redis if lazyInitialization = true

redisson-3.23.5

20 Sep 06:02
Compare
Choose a tag to compare

Feature - failedSlaveNodeDetector setting added to Cluster, Sentinel, Replicated, Master/Slave modes
Feature - module name added to redisson jar (thanks to @KrogerWalt)
Feature - putAll() method with TTL added to RMapCacheRx and RMapCacheReactive objects
Feature - Fallback to TCP in case of a UDP DNS truncation
Feature - RMapCacheV2, Spring RedissonSpringCacheV2Manager and Hibernate RedissonRegionV2Factory objects added in PRO version

Fixed - NPE is thrown by RedissonAutoConfiguration if Spring Boot 3.1+
Fixed - WeightedRoundRobinBalancer doesn't support hostnames
Fixed - NPE is thrown by CommandPubSubDecoder in rare cases
Fixed - during connection initialization a new attempt isn't made for Busy, ClusterDown, TryAgain and Wait Redis errors
Fixed - RJsonBucket.getType() method throws NPE if type is null
Fixed - IllegalStateException is thrown if RedisConnectionDetails object registered in Spring Context with settings for Cluster or Sentinel
Fixed - RSearch can not create Vector field
Fixed - RSearch vector field doesn't support alias

redisson-3.23.4

29 Aug 07:54
Compare
Choose a tag to compare

Feature - methods for multiple permits support added to RPermitExpirableSemaphore object (thanks to @ikss)
Feature - ProtobufCodec codec added (thanks to @dumbbell-5kg)
Feature - WAITAOF command support through BatchOptions.syncAOF() setting
Feature - bgSave(), scheduleBgSave(), save(), getLastSaveTime(), bgRewriteAOF(), size() methods added to RedisNode object

Improvement - RSemaphore and RLock operations should have slave synchronization even if readMode = MASTER and subscriptionMode = MASTER

Fixed - wrong order call of RSearch's FieldIndex tag caseSensitive() and separator() settings
Fixed - RedisConnectionDetails object isn't used for Redisson configuration in Spring Boot 3.1+
Fixed - incorrect slots added,slots removed messages in Redis Cluster mode
Fixed - Tomcat Manager "Session can't be found" message should have debug level
Fixed - RBoundedBlockingQueue can't be deleted if nameMapper was defined
Fixed - RLock isn't unlocked after RTransaction.commit()

redisson-3.23.3

15 Aug 06:19
Compare
Choose a tag to compare

Feature - TransportMode.IO_URING added (thanks to @sgammon)
Feature - LocalCachedMapOptions.useKeyEventsPattern() setting introduced

Improvement - Long as string cache in CommandEncoder (thanks to @tomerarazy)
Improvement - each AddressResolver created by SequentialDnsAddressResolverFactory should share common DnsCache and DnsCnameCache instances
Improvement - RedisURI optimization (thanks to @ikss)

Fixed - codec errors during Quarkus native build
Fixed - extra subscription topic allocation by RLocalCachedMap object (regression since 3.23.2)

redisson-3.23.2

28 Jul 05:22
Compare
Choose a tag to compare

Feature - Micronaut 4.0 integration

Improvement - PubSub channels should be reconnected back to Slave from Master node if SubscriptionMode = SLAVE

Fixed - Setting retryAttempts to 0 causes an exception (regression since 3.23.1)
Fixed - RTopic subscribes only to a single master in cluster if __keyspace or __keyevent channel is defined
Fixed - SlaveConnectionPool no available Redis entries error may arise in some cases
Fixed - StackOverflowError is thrown by AggregationOptions.groupBy() method
Fixed - failedSlaveCheckInterval value should be greater than zero before it can be applied
Fixed - RedissonLocalCachedMap.putAllOperation() method throws ClassCastException if SyncStrategy = UPDATE

redisson-3.23.1

18 Jul 07:29
Compare
Choose a tag to compare

Improvement - the scope of key event subscriptions reduced for RLiveObjectService object. Now it uses key-space channel
Improvement - the scope of key event subscriptions reduced for RLocalCachedMap object. Now it uses key-space channel

Fixed - codecs defined via Spring Native application.properties file can't be recognized during application run
Fixed - retryAttempt setting isn't applied during Redisson startup
Fixed - Quarkus 2/3 native image can't be built
Fixed - unknown property quarkus.redisson.* warnings in quarkus
Fixed - Redisson settings defined in Quarkus application.properties file can't be used in native mode