All Versions
Latest Version
Avg Release Cycle
25 days
Latest Release
81 days ago

Changelog History
Page 1

  • v3.13.0

    May 22, 2020
  • v3.12.5

    April 16, 2020

    πŸ‘Œ Improvement - increased RLock reliability during failover. RedLock was deprecated

    πŸ›  Fixed - Map object is not updated after session change (thanks to @eager)
    πŸ›  Fixed - RedissonSessionRepository doesn't handle PTTL = -2 (thanks to @eager)
    πŸ›  Fixed - RedissonSessionRepository topic listener NPE race condition (thanks to @eager)
    πŸ›  Fixed - RedissonReactiveSubscription.subscribe() and receive() methods aren't synchronized
    πŸ›  Fixed - RLiveObjectService search with Conditions.and() returns wrong result
    πŸ›  Fixed - Redisson Tomcat Manager doesn't store principal and authType session attributes
    πŸ›  Fixed - Redisson is unable to start if first sentinel node in list is down
    πŸ›  Fixed - Spring Data RedissonConnection.del() method doesn't participate in pipeline
    πŸ›  Fixed - RTopic.countListeners() method returns wrong result
    πŸ›  Fixed - RRateLimiter.delete() method doesn't delete all allocated Redis objects
    πŸ›  Fixed - RedissonBloomFilter throws NPE (regression since 3.12.4)
    πŸ›  Fixed - CommandBatchService throws NPE (regression since 3.12.4)

  • v3.12.4

    March 31, 2020

    πŸ”‹ Feature - cacheProvider setting added to LocalCacheConfiguration, ClusteredLocalCachedMapOptions, LocalCacheConfiguration and Hibernate Local Cache regions
    πŸ”‹ Feature - NettyHook object added
    πŸ”‹ Feature - LocalCachedMapOptions.storeMode setting added
    πŸ”‹ Feature - nameMapper setting added to DropwizardMeterRegistryProvider
    πŸ”‹ Feature - username parameter added
    πŸ”‹ Feature - RedissonClient.getRedisNodes() method added
    πŸ”‹ Feature - Config.useThreadClassLoader setting added
    πŸ”‹ Feature - ListAddListener, ListInsertListener, ListRemoveListener, ListSetListener, ListTrimListener added to RList object

    πŸ‘Œ Improvement - MarshallingCodec performance improvements

    πŸ›  Fixed - RedissonSessionRepository doesn't use map's codec during changeSessionId method execution
    πŸ›  Fixed - use FSTConfiguration#deriveConfiguration to preserve ConfType (thanks to Chris Eager)
    πŸ›  Fixed - MGET executed on Spring Data connection should use SLAVE if readMode = SLAVE (thanks to Gil Milow)
    πŸ›  Fixed - XREADGROUP and XCLAIM commands should be executed on Redis master
    πŸ›  Fixed - JsonJacksonCodec unable to serialize removed attributes of Tomcat Session
    πŸ›  Fixed - "response has been skipped due to timeout" error if pingConnectionInterval setting set and blocking command executed
    πŸ›  Fixed - semaphore used during local cache clearing process isn't deleted
    πŸ›  Fixed - RPatternTopicRx(), RPatternTopicReactive(), RPatternTopic.addListenerAsync() methods are don't work
    πŸ›  Fixed - cache entry can't be updated if JCache instance created with CreatedExpiryPolicy
    πŸ›  Fixed - LocalCachedJCache.get() method throws NPE
    πŸ›  Fixed - RedisURI throws MalformedURLException for IPv6 hosts
    πŸ›  Fixed - LocalCachedJCache.removeAll() and LocalCachedJCache.clear() methods are don't work

  • v3.12.3

    February 28, 2020

    0️⃣ LZ4Codec, SnappyCodec, SnappyCodecV2 codecs now use Kryo5Codec by default

    πŸ”‹ Feature - SetObjectListener added to RBucket object
    πŸ”‹ Feature - RBinaryStream should expose SeekableByteChannel and AsynchronousByteChannel interfaces
    πŸ”‹ Feature - added RBucketsReactive and RBucketsRx objects
    πŸ”‹ Feature - added Caffeine support as alternative local cache implementation
    πŸ”‹ Feature - added RBinaryStreamReactive and RBinaryStreamRx objects
    πŸ”‹ Feature - added RKeys.swapdb method
    πŸ”‹ Feature - added addFirstIfExists and addLastIfExists methods to RDeque object
    πŸ”‹ Feature - RPriorityDeque extends RDeque

    πŸ‘Œ Improvement - type of RedisExecutor.CODECS field changed to LRUCacheMap

    πŸ›  Fixed - CommandPubSubDecoder throws NPE
    πŸ›  Fixed - RLock.unlock() results in ERR hash value if RedisLabs hosting is used
    πŸ›  Fixed - RPriorityBlockingQueue.poll() method with limit implemented
    Fixed - redisson__map_cache__last_access__set* objects continuously grow in size if RMapCache.maxSize defined
    πŸ›  Fixed - Eviction task is not stopped after RMapCache.destroy() method invocation

  • v3.12.2

    February 18, 2020

    πŸ”‹ Feature - Hibernate hibernate.cache.redisson.fallback setting introduced
    πŸ”‹ Feature - added RLocalCachedMap.preloadCache method with batch size

    πŸ‘Œ Improvement - RLocalCachedMap.putAllOperation method optimization

    πŸ›  Fixed - exception thrown by org.redisson.jcache.JCacheEventCodec
    πŸ›  Fixed - connection leak occured during RBatch object usage
    πŸ›  Fixed - Tomcat session should return the same object during the same request for readMode = REDIS and updateMode = AFTER_REQUEST settings
    πŸ›  Fixed - RPriorityQueue comparator is not deleted or expired after corresponding methods invocation
    πŸ›  Fixed - memory leak caused by ClientConnectionsEntry.allConnections field
    πŸ›  Fixed - maxIdleTimeout = 1 hour set to RedisExecutor.CODECS map
    πŸ›  Fixed - use RBatch for all types of Redis setup (thanks to @basiszwo)

  • v3.12.1

    January 30, 2020

    πŸ”‹ Feature - RTransferQueue object added. Please refer to documentation for more details
    πŸ”‹ Feature - availablePermits, availablePermitsAsync and drainPermitsAsync methods added to RSemaphoreAsync object
    πŸ”‹ Feature - tryExecute, tryExecuteAsync and getPendingInvocationsAsync methods added to RRemoteService object
    πŸ”‹ Feature - natMap setting deprecated in favor of natMapper
    πŸ”‹ Feature - checkSentinelsList setting added
    πŸ”‹ Feature - cleanUpKeysAmount setting added

    πŸ‘Œ Improvement - perform Sentinel DNS check when all connections fail (thanks to @markusdlugi)

    πŸ›  Fixed - zRemRangeByScore and zcount methods of ReactiveZSetCommands interfaсe don't use -inf and +inf values
    πŸ›  Fixed - connections to disconnected Redis nodes aren't removed in sentinel and cluster mode
    πŸ›  Fixed - MalformedURLException thrown during Redis host parsing in cluster mode
    πŸ›  Fixed - extra square bracket added during IPV6 Redis host conversion
    πŸ›  Fixed - defined codec's classloader is overwritten with Thread.currentThread().getContextClassLoader()
    πŸ›  Fixed - RPriorityQueue.add method throws NPE
    πŸ›  Fixed - connecting to a password protected Redis Sentinel fails (thanks to @stikku)
    πŸ›  Fixed - java.lang.IllegalStateException thrown during org.redisson.spring.cache.RedissonCacheStatisticsAutoConfiguration introspection
    πŸ›  Fixed - RLock expiration renewal not working after connection problem (thanks to @edallagnol)
    πŸ›  Fixed - Spring Data RedissonConnectionFactory should call shutdown method on destroy on created Redisson instance

  • v3.12.0

    December 26, 2019

    πŸ”‹ Feature - RExecutorService task id injection
    πŸ”‹ Feature - submit() methods with ttl parameter added to RExecutorService
    πŸ”‹ Feature - schedule() methods with timeToLive parameter added to RScheduledExecutorService
    πŸ”‹ Feature - MyBatis cache implementation added
    πŸ”‹ Feature - added implementation of doSuspend and doResume methods of Spring Transaction Manager
    πŸ”‹ Feature - WorkerOptions.taskTimeout setting added
    πŸ”‹ Feature - RSemaphore.addPermits method added
    πŸ”‹ Feature - ability to define TaskFailureListener, TaskFinishedListener, TaskStartedListener and TaskSuccessListener task listeners with WorkerOptions object

    πŸ‘Œ Improvement - Default workers amount of RExecutorService set to 1

    πŸ›  Fixed - CommandDecoder throws NPE
    πŸ›  Fixed - ReplicatedConnectionManager triggers reactivation of slaves with ip address instead of hostname (thanks to @f-sander)
    πŸ›  Fixed - Reactive/Rxjava2 transaction doesn't unlock lock on rollback or commit
    πŸ›  Fixed - Spring Transaction Manager doesn't handle Redisson TransactionException
    πŸ›  Fixed - RBuckets.get throws NPE for non-existed buckets (thanks to @d10n)
    πŸ›  Fixed - RPermitExpirableSemaphore does not expire
    πŸ›  Fixed - RedissonCacheStatisticsAutoConfiguration should be conditional on CacheMeterBinderProvider presence (thanks to @ehontoria)

  • v3.11.6

    November 28, 2019

    πŸ”‹ Feature - RExecutorServiceAsync.cancelTaskAsync() method added
    πŸ”‹ Feature - RExecutorService.hasTask() method added
    πŸ”‹ Feature - RExecutorService.getTaskCount() method added
    πŸ”‹ Feature - RMap write-behind queue should be fault-tolerant
    πŸ”‹ Feature - added poll() methods with limit to RQueue, RDeque, RDelayedQueue objects
    πŸ”‹ Feature - checkSlotsCoverage setting added to cluster config
    πŸ”‹ Feature - RExecutorService.getTaskIds() method added
    πŸ”‹ Feature - awaitAsync() methods added to RCountDownLatch object
    πŸ”‹ Feature - RCountDownLatchRx and RCountDownLatchReactive objects added

    πŸ›  Fixed - channel subscription proccess in interruptible methods can't be interrupted
    πŸ›  Fixed - RMap.get() method invokes MapWriter.write() method during value loading
    πŸ›  Fixed - interruptible blocking methods couldn't be canceled
    πŸ›  Fixed - ClusterNodesDecoder ignore unknown flag and avoid throwing exception (thanks to ZhangJQ)
    πŸ›  Fixed - AsyncSemaphore counter field should be volatile
    πŸ›  Fixed - data encoding exception is not logged during remote call invocation
    πŸ›  Fixed - Spring Data ZRangeByScore method doesn't support Infinity Double value
    πŸ›  Fixed - spring metainfo files should be excluded in redisson-all artifact
    πŸ›  Fixed - RKeysRx.getKeys() and RKeysReactive.getKeys() methods throws Exception

  • v3.11.5

    October 26, 2019

    πŸ”‹ Feature - Automatic-Module-Name entry added to manifest file
    πŸ”‹ Feature - subscribeOnElements method added to RBlockingQueue object
    πŸ”‹ Feature - subscribeOnFirstElements and subscribeOnLastElements methods added to RBlockingDeque object
    πŸ”‹ Feature - subscribeOnFirstElements and subscribeOnLastElements methods added to RScoredSortedSet object
    πŸ”‹ Feature - support of Spring Data Redis 2.2.x
    πŸ”‹ Feature - added batched persist method to RLiveObjectService object
    πŸ”‹ Feature - Kryo5Codec implemented

    πŸ›  Fixed - host details in Redis url cause extra bracket at the end
    πŸ›  Fixed - RBuckets.get() method doesn't work with custom codec
    πŸ›  Fixed - RLock.unlock() method hangs forever
    πŸ›  Fixed - RStream.trim method throws exception
    πŸ›  Fixed - Spring Data pubsub listeners executes multiple times
    πŸ›  Fixed - Redis commands processing handler consumes 100% of CPU resources

  • v3.11.4

    September 24, 2019

    πŸ”‹ Feature - support search by numeric fields in LiveObject search engine. Follow conditions are supported: greater than on equal, greater than, lower than, lower than or equal

    πŸ›  Fixed - threads blocked waiting on CountDownLatch
    πŸ›  Fixed - rename and renamenx methods of RMultimap interface aren't working
    πŸ›  Fixed - memory leak caused by FastThreadLocal object used in CodecDecoder
    πŸ›  Fixed - blocking queue methods don't re-throw InterruptedException
    πŸ›  Fixed - RExecutorService tasks duplication after task retry event
    πŸ›  Fixed - Redisson.shutdown method blocks calling thread
    πŸ›  Fixed - Spring Boot default connection timeout is 0 seconds
    πŸ›  Fixed - IPv6 handling in Sentinel manager (thanks to AndreevDm)
    πŸ›  Fixed - RMapCache.remainTimeToLive method returns negative remain time
    πŸ›  Fixed - RBuckets.get method doesn't work in Redis cluster mode
    πŸ›  Fixed - wrong error message if Sentinel server has misconfiguration