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

Changelog History
Page 1

  • 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

  • v3.11.3

    August 30, 2019

    πŸ”‹ Feature - JBoss Marshalling codec implementation
    πŸ”‹ Feature - support for Spring's @Autowired, @Value and JSR-330 @Inject annotations in ExecutorService tasks
    πŸ”‹ Feature - SSL support for Sentinel mode
    πŸ”‹ Feature - sizeInMemory() method added to RObjectReactive and RObjectRx interfaces
    πŸ”‹ Feature - getId() method added to RedissonClient, RedissonRxClient, RedissonReactiveClient interfaces

    πŸ‘Œ Improvement - useCache parameter added to FstCodec
    πŸ‘Œ Improvement - URL object should be used for sslKeystore and sslTruststore settings

    πŸ›  Fixed - RedisTimeoutException thrown if retryAttempts set to 0
    πŸ›  Fixed - RStream.readGroup method doesn't work properly with TypedJsonJacksonCodec
    πŸ›  Fixed - semaphore object is not deleted after RLocalCachedMap.clearLocalCache method invocation
    πŸ›  Fixed - Redisson couldn't be shutdown if one of RBatch commands was canceled

  • v3.11.2

    August 03, 2019

    πŸ‘Œ Improvement - RLiveObject interface should extend RExpirable
    πŸ‘Œ Improvement - RKeys.deleteByPattern method performance improvements

    πŸ›  Fixed - RBatch.execute method throws NoSuchElementException
    πŸ›  Fixed - RedisTimeoutException is thrown if retryInterval set to 0
    πŸ›  Fixed - Set.intersection, union and diff methods should return Integer
    πŸ›  Fixed - FSTCodec state is not fully copied
    πŸ›  Fixed - CommandAsyncService.CODECS map changed to Soft reference map
    πŸ›  Fixed - RKeys.deleteByPatternAsync method doesn't work in batch mode
    πŸ›  Fixed - subscribe timeouts after failover
    πŸ›  Fixed - a new attempt is not made if node with defined slot wasn't discovered
    πŸ›  Fixed - some methods of RScript object doesn't use defined codec
    πŸ›  Fixed - RedissonConnection.set method returns null if invoked with expiration parameter
    πŸ›  Fixed - removeAll method doesn't work on collections returned by Multimap based objects