All Versions
Latest Version
Avg Release Cycle
27 days
Latest Release

Changelog History
Page 4

  • v3.11.2 Changes

    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

  • v3.11.1 Changes

    June 25, 2019

    ๐Ÿ”‹ Feature - getPendingInvocations method added to RRemoteService object
    ๐Ÿ”‹ Feature - natMap setting support for Sentinel mode (thanks to fgiannetti)
    ๐Ÿ”‹ Feature - listPending method added to RStream, RStreamAsync, RStreamRx, RStreamReactive interfaces
    ๐Ÿ”‹ Feature - implementation of Spring Session ReactiveSessionRepository added
    ๐Ÿ”‹ Feature - allow usage of multiple env variables with default values in one config entry (thanks to tristanlins)

    ๐Ÿ‘Œ Improvement - Use maven packaging for redisson project as jar instead of bundle (thanks to jchobantonov)
    ๐Ÿ‘Œ Improvement - add default entries in MANIFEST.MF file and extra Build-Time entry as well (thanks to jchobantonov)

    ๐Ÿ›  Fixed - RMap.replace method doesn't update idle timeout (thanks to mcacker)
    ๐Ÿ›  Fixed - timeout drift in RedissonFairLock (thanks to jncorpron)
    ๐Ÿ›  Fixed - dead Sentinel appears in logs as node added and down
    ๐Ÿ›  Fixed - Publish/Subscribe connections are not resubscribed properly after failover process
    ๐Ÿ›  Fixed - RedissonLocalCachedMap.clearLocalCache method is not executed asynchronously
    ๐Ÿ›  Fixed - Tomcat RedissonSession.setAttribute method doesn't check the value for null (thanks to jchobantonov)
    ๐Ÿ›  Fixed - Tomcat Manager UpdateValve should be installed only once (thanks to jchobantonov)
    ๐Ÿ›  Fixed - remove MessageListener from topic when Tomcat Session Manager stopInternal is invoked (thanks to jchobantonov)
    ๐Ÿ›  Fixed - RStream.getInfo method throws java.lang.ClassCastException
    ๐Ÿ›  Fixed - RedissonMultiLock could be acquired by multiple threads if waitTime == -1 and leaseTime != -1
    Fixed - PRINCIPAL_NAME_INDEX_NAME key is not created in redis
    ๐Ÿ›  Fixed - SessionExpiredEvent is not triggered in Spring Session implementation
    ๐Ÿ›  Fixed - host name containing underscore cause NPE
    ๐Ÿ›  Fixed - Illegal reflective access by org.redisson.misc.URIBuilder warning removed
    ๐Ÿ›  Fixed - RedissonSessionRepository doesn't trigger created event if keyPrefix setting is not null (thanks to hs20xqy)
    ๐Ÿ›  Fixed - RRemoteService.getFreeWorkers method removes registered service
    ๐Ÿ›  Fixed - zero timeout isn't respected in RRateLimiter.tryAcquire method
    ๐Ÿ›  Fixed - RedissonObjectBuilder.REFERENCES map should be filled one time
    ๐Ÿ›  Fixed - RReadWriteLock.readLock doesn't take in account expiration date of the last acquired read lock. (thanks to Aimwhipy)
    ๐Ÿ›  Fixed - result object of RMapRx.iterator methods don't return Flowable object
    ๐Ÿ›  Fixed - Tomcat Session doesn't expire if broadcastSessionEvents = true
    ๐Ÿ›  Fixed - ClassNotFoundException thrown during SerializationCodec.decode method invocation (thanks to jchobantonov)
    ๐Ÿ›  Fixed - connections amount setting for mirrors is not applied in Proxy mode

  • v3.11.0 Changes

    May 29, 2019

    ๐Ÿ”‹ Feature - radiusStoreSortedTo methods added to RGeo, RGeoAsync, RGeoRx, RGeoReactive interfaces
    ๐Ÿ”‹ Feature - Local cache for JCache added. Read the documentation for more details
    ๐Ÿ”‹ Feature - Async, Reactive, RxJava2 interfaces added to JCache. Read the documentation for more details
    ๐Ÿ”‹ Feature - RRingBuffer object added. Read the documentation for more details

    ๐Ÿ‘Œ Improvement - reduced memory consumption by ClusterConnectionManager
    ๐Ÿ‘Œ Improvement - UpdateValve needs to execute only once at the end of the request (thanks to jchobantonov)

    ๐Ÿ›  Fixed - HttpSessionListener.sessionDestoyed method isn't invoked if session wasn't loaded by Tomcat instance
    ๐Ÿ›  Fixed - redisson-spring-data ReactiveSubscription.receive method throws NPE
    ๐Ÿ›  Fixed - Redis response isn't fully consumed after decoding error
    Fixed - Spring Session PRINCIPAL_NAME_INDEX_NAME session attribute has incorrect name
    ๐Ÿ›  Fixed - internal AsyncSemaphore object doesn't notify sleeping threads with permits more than one
    ๐Ÿ›  Fixed - RedisTemplate.radius and RedisConnection.geoRadius methods throws IllegalArgumentException during response decoding
    ๐Ÿ›  Fixed - RedissonNodeConfig.mapReduceWorkers setting couldn't be set (thanks to xiaoxuan.bai)

  • v3.10.7 Changes

    April 29, 2019

    ๐Ÿ”‹ Feature - Add support for Reactive and RxJava2 interfaces to RemoteService object
    ๐Ÿ”‹ Feature - MILLISECONDS option added to RRateLimiter.RateIntervalUnit object
    ๐Ÿ”‹ Feature - range method added to RList, RListReactive and RListRx interfaces

    ๐Ÿ‘Œ Improvement - JCache.getAll execution optimization for non-existing keys
    ๐Ÿ‘Œ Improvement - 10X Performance boost for JCache.putAll method

    ๐Ÿ›  Fixed - disconnected sentinels shouldn't be used in sentinel list
    ๐Ÿ›  Fixed - Apache Tomcat RedissonSessionManager doesn't use classloader aware codec for session Map object (thanks to jchobantonov)
    ๐Ÿ›  Fixed - LiveObject field with Map type couldn't be persisted
    ๐Ÿ›  Fixed - RRateLimiter allows permits limit exceeding
    ๐Ÿ›  Fixed - CompositeCodec.getMapValueDecoder method uses MapKeyDecoder instead of MapValueDecoder
    ๐Ÿ›  Fixed - memory leak during blocking methods invocation of Queue objects
    ๐Ÿ›  Fixed - Apache Tomcat RedissonSessionManager.findSession shouldn't create a new one session (thanks to jchobantonov)
    ๐Ÿ›  Fixed - JCache.removeAll method doesn't notify Cache listeners
    ๐Ÿ›  Fixed - UpdateValve sould be removed from pipeline in Apache Tomcat RedissonSessionManager.stopInternal method (thanks to jchobantonov)
    ๐Ÿ›  Fixed - Redis Sentinel prior 5.0.1 version doesn't require password. Regression since 3.10.5 version
    ๐Ÿ›  Fixed - Redisson tries to renewed Lock expiration even if lock doesn't exist. Regression since 3.10.5 version
    ๐Ÿ›  Fixed - FstCodec can't deserialize ConcurrentHashMap based object with package visibility

  • v3.10.6 Changes

    April 05, 2019

    ๐Ÿ”‹ Feature - broadcastSessionEvents setting added to Tomcat Session Manager
    ๐Ÿ”‹ Feature - remainTimeToLive method added to RLock, RLockAsync, RLockRx and RLockReactive interfaces
    ๐Ÿ”‹ Feature - NAT mapping support for cluster mode
    ๐Ÿ”‹ Feature - isLock method added to RLockAsync, RLockRx, RLockReactive interfaces
    ๐Ÿ”‹ Feature - writeBehindDelay and writeBehindBatchSize settings added to MapOptions object

    ๐Ÿ‘Œ Improvement - Eviction task logging added
    ๐Ÿ‘Œ Improvement - MapWriter interface retains only two methods for handling batch updates
    ๐Ÿ‘Œ Improvement - MapOptions.writeBehindThreads parameter removed

    ๐Ÿ›  Fixed - RBitSet.asBitSet methods throws NPE if RBitSet object doesn't exist
    ๐Ÿ›  Fixed - JCache.getAll method throws RedisException: too many results to unpack
    ๐Ÿ›  Fixed - RLock.lock method can be interrupted with Thread.interrupt method
    ๐Ÿ›  Fixed - Tomcat Session parameters aren't updated completely in readMode=MEMORY
    ๐Ÿ›  Fixed - RLock.unlock method returns true if lock doesn't exist
    ๐Ÿ›  Fixed - Tomcat Session Manager doesn't remove session attributes in updateMode=AFTER_REQUEST
    ๐Ÿ›  Fixed - Pattern topic listeners fail to re-attach on cluster failover (thanks to shailender-bathula)
    ๐Ÿ›  Fixed - CommandPubSubDecoder.decodeResult throws IllegalStateException in JBOSS environment
    ๐Ÿ›  Fixed - NullValue object shouldn't be stored if RedissonSpringCacheManager.allowNullValues = false
    ๐Ÿ›  Fixed - removeListener method of RTopicReactive and RTopicRx interfaces throws NoSuchMethodException

  • v3.10.5 Changes

    March 20, 2019

    ๐Ÿ”‹ Feature - getMultiLock, getRedLock methods added to RedissonClient, RedissonRxClient and RedissonReactiveClient interfaces
    ๐Ÿ”‹ Feature - getInfo, listGroups, listConsumers methods added to RStream, RStreamRx, RStreamReactive interfaces
    ๐Ÿ”‹ Feature - RPatternTopic.removeListenerAsync method added
    ๐Ÿ”‹ Feature - getAndSet method with TTL support added RBucket, RBucketAsync, RBucketReactive, RBucketRx interfaces
    ๐Ÿ”‹ Feature - addListener and removeListener methods added to RObject, RObjectAsync, RObjectReactive, RObjectRx objects. It allows to add and remove listeners for Deleted and Expired keyspace events published by Redis

    ๐Ÿ‘Œ Improvement - shuffle list of sentinels to distribute load (thanks to hrakaroo)
    ๐Ÿ‘Œ Improvement - methods of RxJava2 interfaces should use full set of result objects: Single, Maybe or Completable

    ๐Ÿ›  Fixed - compatibility with hibernate 5.2.0 - 5.2.4 versions
    Fixed - ClassCastException during RBatchReactive and RBatchRx execution in exectionMode = REDIS_WRITE_ATOMIC or REDIS_READ_ATOMIC
    ๐Ÿ›  Fixed - sentinel mode doesn't support AUTH command
    ๐Ÿ›  Fixed - response shouldn't be printed in case of response timeout error
    ๐Ÿ›  Fixed - HP NONSTOP OS is not supported by MapCacheEventCodec
    ๐Ÿ›  Fixed - RStream.readGroup method doesn't handle empty result properly with Redis 5.0.3
    ๐Ÿ›  Fixed - AUTH password included in exceptions
    ๐Ÿ›  Fixed - locked lock isn't unlocked after disconnect to Redis

  • v3.10.4 Changes

    March 08, 2019

    ๐Ÿ”‹ Feature - getCountDownLatch, getPermitExpirableSemaphore, getSemaphore, getFairLock methods added to RMultimap object
    ๐Ÿ”‹ Feature - maxCleanUpDelay and minCleanUpDelay settings added to Config object

    ๐Ÿ›  Fixed - RLocalCachedMap.destroy method doesn't clear local cache
    ๐Ÿ›  Fixed - HP NONSTOP OS is not supported by MapCacheEventCodec
    ๐Ÿ›  Fixed - RedissonLocalCachedMap.readAll* methods throw NPE if evictionPolicy = WEAK used
    ๐Ÿ›  Fixed - codec provided in Redisson configuration isn't used for attribute messages serialization
    ๐Ÿ›  Fixed - ClassNotFoundException is thrown by Tomcat Session Manager in readMode = MEMORY
    ๐Ÿ›  Fixed - fresh Tomcat instance unable to load session stored in Redis
    ๐Ÿ›  Fixed - negative delay shouldn't be allowed to define for RDelayedQueue.offer method
    ๐Ÿ›  Fixed - eviction delay for RMapCache object is not decreased
    ๐Ÿ›  Fixed - RMultiLock.tryLockAsync and RMultiLock.lockAsync methods may hang during invcation

  • v3.10.3 Changes

    February 26, 2019

    ๐Ÿ”‹ Feature - RTransaction.getBuckets method added
    ๐Ÿ”‹ Feature - ability to redefine CacheKeysFactory in Hibernate Cache Factory
    0๏ธโƒฃ Feautre - ability to specify default values for environment variable (thanks to aaabramov)
    ๐Ÿ”‹ Feature - RRateLimiter.getConfig method added
    ๐Ÿ”‹ Feature - ping and pingAll methods with timeout added to Node object

    ๐Ÿ‘Œ Improvement - create Redis stream group if it doesn't exist
    ๐Ÿ‘Œ Improvement - response decoding optimization

    ๐Ÿ›  Fixed - RStream.listPending throws IndexOutOfBoundsException
    ๐Ÿ›  Fixed - LocalCacheView.toCacheKey method throws StackOverflowError
    ๐Ÿ›  Fixed - RedissonSessionManager doesn't support async servlets (thanks to dnouls)
    ๐Ÿ›  Fixed - FSTCodec memory leak
    ๐Ÿ›  Fixed - rename and renamenx methods don't change name of current object
    ๐Ÿ›  Fixed - performance regression of RBatch result decoding (since 2.12.2 / 3.7.2 version)
    ๐Ÿ›  Fixed - Transactional RBucket object doesn't respect transaction timeout

  • v3.10.2 Changes

    February 07, 2019

    ๐Ÿ”‹ Feature - StreamMessageId.NEVER_DELIVERED added
    ๐Ÿ”‹ Feature - decodeInExecutor setting added
    ๐Ÿ”‹ Feature - lockAsync and tryLockAsync methods with threadId param added to RedissonMultiLock object
    ๐Ÿ‘Œ Improvement - default values of nettyThreads and threads settings set to 32 and 16 respectively
    ๐Ÿ‘Œ Improvement - Redis nodes with empty names in cluster config should be skipped
    ๐Ÿ›  Fixed - RFuture.cause() method should return CancellationException and not throw it
    ๐Ÿ›  Fixed - continues handling of RedisLoadingException leads to excessive load
    ๐Ÿ›  Fixed - slave's connection pools are not initialized when it back from failover
    ๐Ÿ›  Fixed - Buffer leak during failover and RBatch object execution
    ๐Ÿ›  Fixed - NumberFormatException error appears in log during RStream.readGroup invocation
    ๐Ÿ›  Fixed - already wrapped IPv6 addresses shouldn't be wrapped in square brackets (thanks to antimony)
    ๐Ÿ›  Fixed - NPE arise during Tomcat Session getAttribute/delete methods invocation (thanks to jchobantonov)
    ๐Ÿ›  Fixed - huge messages logged in case of decoding error
    ๐Ÿ›  Fixed - Redis password shouldn't be included in exceptions
    ๐Ÿ›  Fixed - Redis Password visible in log
    ๐Ÿ›  Fixed - infinite loop in RedLock or MultiLock (thanks to zhaixiaoxiang)
    Fixed - RBatch object in REDIS_READ_ATOMIC execution mode is not executed on Redis salve
    ๐Ÿ›  Fixed - MOVED loop redirect error while "CLUSTER FAILOVER" (thanks to sKabYY)
    ๐Ÿ›  Fixed - redisson configuration in yaml format, located in classpath, couldn't be loaded by hibernate factory
    ๐Ÿ›  Fixed - class files should be excluded from META-INF folder
    ๐Ÿ›  Fixed - JndiRedissonSessionManager shouldn't shutdown Redisson instance (thanks to jchobantonov)
    ๐Ÿ›  Fixed - RDestroyable interface should be implemented by RMapCache and RSetCache rx/reactive objects

  • v3.0.0 Changes

    Fully compatible with JDK 8. Includes all code changes from 2.5.0 version

    ๐Ÿ”‹ Feature - RFeature extends CompletionStage