Skip to content

Releases: redisson/redisson

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

redisson-3.23.0

11 Jul 06:02
Compare
Choose a tag to compare

Feature - added RBloomFilter contains() and add() methods with element collection support
Feature - RMapCache and RLocalCachedMap should use sharded pubsub in Redis Cluster 7.0+
Feature - lazyInitialization setting added
Feature - expireEntryIfNotSet(), expireEntries(), expireEntry(), expireEntriesIfNotSet() methods added to RMapCache object
Feature - MapCacheOptions object with removeEmptyEvictionTask() setting introduced. Removes RMapCache eviction task from memory if map is empty upon entries eviction process completion

Breaking change - RMapCache and RLocalCachedMap should use sharded pubsub in Redis Cluster 7.0+
Breaking change - RMapCache object uses MapCacheOptions object

Improvement - RMapCache shouldn't emit events if no listeners added

Fixed - canceling tasks that scheduled with cron expression does not interrupt the thread (thanks to @zcxsythenew)
Fixed - RExecutorService task response should be deleted if task was canceled
Fixed - RedisConnection.close() method has private visibility
Fixed - ConcurrentModificationException occasionally thrown during batch execution
Fixed - StringIndexOutOfBoundsException is thrown if Redis port isn't defined in configuration
Fixed - missed methods implementation of Spring Data Redis module: zRevRangeByLex(), time(TimeUnit), zRemRangeByLex(), zLexCount(), rewriteConfig(), zRangeStoreByLex(), zRangeStoreRevByLex(), zRangeStoreByScore(), zRangeStoreRevByScore(), flushDb(), flushAll(), replicaOf(), replicaOfNoOne()
Fixed - transactional RMap.fastRemove() method throws UnsupportedOperationException
Fixed - RBloomFilter contains() and add() methods don't return accurate results if false probability is high
Fixed - incorrect handling "unknown command" response for RTopic operations
Fixed - RLiveObjectService.delete(class, id) method doesn't delete indexes
Fixed - RMultimapCache throws an exception if entry removed before expiration moment
Fixed - keepPubSubOrder setting isn't applied

redisson-3.22.1

19 Jun 08:42
Compare
Choose a tag to compare

Feature - Apache Tomcat Manager should use sharded pubsub in Redis Cluster 7.0+
Feature - Micronaut Session store should use sharded pubsub in Redis Cluster 7.0+
Feature - RClusteredScoredSortedSet object implemented
Feature - maxDeletedEntryId, entriesAdded, recordedFirstEntryId properties added to StreamInfo object
Feature - inactive property added to StreamConsumer object
Feature - LocalCachedMapOptions.cacheSize = -1 should disable local cache storage

Breaking change - Apache Tomcat Manager and Micronaut Session store now use sharded PubSub in Redis Cluster 7.0+

Fixed - map index entry isn't deleted when RLiveObjectService expires
Fixed - RMultimap.fastRemoveValue() method doesn't delete entry completely if no values retain
Fixed - Default getCache method checks for Object class equality (thanks @agupta-hw)
Fixed - RScoredSortedSet.distributedIterator() doesn't work (regression since 3.21.0)
Fixed - Memory leak if RLocalCachedMap created with storeMode=LOCALCACHE and syncStrategy=UPDATE params
Fixed - wait time handling in RedissonSpinLock (thanks @vladimirkl)
Fixed - java.lang.ClassCastException is thrown by RDequeReactive.pollLast() and RDequeReactive.pollFirst() methods (thanks @wynn5a)
Fixed - RSearch.search() method throws "Parameters must be specified in PARAM VALUE pairs" error
Fixed - RRateLimiter.setRate() method does not behave as expected when RateType is pre_client (thanks @wynn5a)
Fixed - collection fields aren't deleted when RLiveObject expires or is deleted

redisson-3.22.0

05 Jun 08:51
Compare
Choose a tag to compare

Feature - Spring Data Redis 3.1.0 implementation
Feature - Spring Boot 3.1.0 support
Feature - lastEntry(), firstEntry(), pollLastEntries(), pollFirstEntries(), entryIterator(), rankEntry(), revRankEntry() methods added to RScoredSortedSet object
Feature - RCountDownLatch, RLock, RPermitExpirableSemaphore, RSemaphore objects use sharded PubSub in Redis Cluster 7.0+
Feature - slavesSyncTimeout, commandMapper, sslCiphers, sslTrustManagerFactory, sslKeyManagerFactory settings added
Feature - RMultimap.fastRemoveValue() method added
Feature - allowedClasses setting added to SerializationCodec
Feature - entriesRead and makeStream parameters added to RStream.createGroup() method

Breaking change - RCountDownLatch, RLock, RPermitExpirableSemaphore, RSemaphore objects now use sharded PubSub in Redis Cluster 7.0+

Fixed - Expired LiveObjects with RIndex annotations retain indexed data
Fixed - RRingBuffer doesn't implement expire(), expireAt(), delete(), clearExpire() methods properly
Fixed - RLocalCachedMap local cache isn't cleared after instance expiration

redisson-3.21.3

18 May 06:24
Compare
Choose a tag to compare

Fixed - default retryInterval isn't applied to RBatch object
Fixed - RBatches no longer respect the default number of retries (regression since 3.21.1)

redisson-3.21.2

17 May 12:15
Compare
Choose a tag to compare

Feature - RBitSet.set(long[], boolean) method added (thanks to @skasj)

Fixed - Pattern Topic messages are missed/duplicated after failover in cluster if channel starts with __keyspace and __keyevent and subscriptionMode = SLAVE
Fixed - to many pubsub topics may cause memory leak
Fixed - RBatches no longer respect the default number of retries (regression since 3.21.1)