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

Changelog History
Page 1

  • 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

  • v3.11.1

    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

    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

    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

    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

    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