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 - addedpoll()
methods with limit toRQueue
,RDeque
,RDelayedQueue
objects
🔋 Feature -checkSlotsCoverage
setting added to cluster config
🔋 Feature -RExecutorService.getTaskIds()
method added
🔋 Feature -awaitAsync()
methods added toRCountDownLatch
object
🔋 Feature -RCountDownLatchRx
andRCountDownLatchReactive
objects added🛠Fixed - channel subscription proccess in interruptible methods can't be interrupted
🛠Fixed -RMap.get()
method invokesMapWriter.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()
andRKeysReactive.getKeys()
methods throws Exception -
v3.11.5
October 26, 2019🔋 Feature - Automatic-Module-Name entry added to manifest file
🔋 Feature -subscribeOnElements
method added toRBlockingQueue
object
🔋 Feature -subscribeOnFirstElements
andsubscribeOnLastElements
methods added toRBlockingDeque
object
🔋 Feature -subscribeOnFirstElements
andsubscribeOnLastElements
methods added toRScoredSortedSet
object
🔋 Feature - support of Spring Data Redis 2.2.x
🔋 Feature - added batched persist method toRLiveObjectService
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
andrenamenx
methods ofRMultimap
interface aren't working
🛠Fixed - memory leak caused byFastThreadLocal
object used inCodecDecoder
🛠Fixed - blocking queue methods don't re-throwInterruptedException
🛠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 toRObjectReactive
andRObjectRx
interfaces
🔋 Feature -getId()
method added toRedissonClient
,RedissonRxClient
,RedissonReactiveClient
interfaces👌 Improvement -
useCache
parameter added toFstCodec
👌 Improvement - URL object should be used forsslKeystore
andsslTruststore
settings🛠Fixed -
RedisTimeoutException
thrown if retryAttempts set to 0
🛠Fixed -RStream.readGroup
method doesn't work properly withTypedJsonJacksonCodec
🛠Fixed - semaphore object is not deleted afterRLocalCachedMap.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 extendRExpirable
👌 Improvement -RKeys.deleteByPattern
method performance improvements🛠Fixed -
RBatch.execute
method throwsNoSuchElementException
🛠Fixed -RedisTimeoutException
is thrown if retryInterval set to 0
🛠Fixed -Set.intersection
,union
anddiff
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 ofRScript
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 toRRemoteService
object
🔋 Feature -natMap
setting support for Sentinel mode (thanks to fgiannetti)
🔋 Feature -listPending
method added toRStream
,RStreamAsync
,RStreamRx
,RStreamReactive
interfaces
🔋 Feature - implementation of Spring SessionReactiveSessionRepository
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 - TomcatRedissonSession.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 throwsjava.lang.ClassCastException
🛠Fixed -RedissonMultiLock
could be acquired by multiple threads ifwaitTime
== -1 andleaseTime
!= -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 ifkeyPrefix
setting is not null (thanks to hs20xqy)
🛠Fixed -RRemoteService.getFreeWorkers
method removes registered service
🛠Fixed - zero timeout isn't respected inRRateLimiter.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 returnFlowable
object
🛠Fixed - Tomcat Session doesn't expire ifbroadcastSessionEvents = true
🛠Fixed - ClassNotFoundException thrown duringSerializationCodec.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 toRGeo
,RGeoAsync
,RGeoRx
,RGeoReactive
interfaces
🔋 Feature - Local cache forJCache
added. Read the documentation for more details
🔋 Feature -Async
,Reactive
,RxJava2
interfaces added toJCache
. 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 manager.store 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-dataReactiveSubscription.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 - internalAsyncSemaphore
object doesn't notify sleeping threads with permits more than one
🛠Fixed -RedisTemplate.radius
andRedisConnection.geoRadius
methods throwsIllegalArgumentException
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 forJCache.putAll
method🛠Fixed - disconnected sentinels shouldn't be used in sentinel list
🛠Fixed - Apache TomcatRedissonSessionManager
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 usesMapKeyDecoder
instead ofMapValueDecoder
🛠Fixed - memory leak during blocking methods invocation of Queue objects
🛠Fixed - Apache TomcatRedissonSessionManager.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 TomcatRedissonSessionManager.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 toRLock
,RLockAsync
,RLockRx
andRLockReactive
interfaces
🔋 Feature - NAT mapping support for cluster mode
🔋 Feature -isLock
method added toRLockAsync
,RLockRx
,RLockReactive
interfaces
🔋 Feature -writeBehindDelay
andwriteBehindBatchSize
settings added toMapOptions
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 throwsRedisException: too many results to unpack
🛠Fixed -RLock.lock
method can be interrupted withThread.interrupt
method
🛠Fixed - Tomcat Session parameters aren't updated completely inreadMode=MEMORY
🛠Fixed -RLock.unlock
method returns true if lock doesn't exist
🛠Fixed - Tomcat Session Manager doesn't remove session attributes inupdateMode=AFTER_REQUEST
🛠Fixed - Pattern topic listeners fail to re-attach on cluster failover (thanks to shailender-bathula)
🛠Fixed -CommandPubSubDecoder.decodeResult
throwsIllegalStateException
in JBOSS environment
🛠Fixed - NullValue object shouldn't be stored ifRedissonSpringCacheManager.allowNullValues = false
🛠Fixed -removeListener
method ofRTopicReactive
andRTopicRx
interfaces throws NoSuchMethodException -
v3.10.5
March 20, 2019🔋 Feature -
getMultiLock
,getRedLock
methods added toRedissonClient
,RedissonRxClient
andRedissonReactiveClient
interfaces
🔋 Feature -getInfo
,listGroups
,listConsumers
methods added toRStream
,RStreamRx
,RStreamReactive
interfaces
🔋 Feature -RPatternTopic.removeListenerAsync
method added
🔋 Feature -getAndSet
method with TTL support addedRBucket
,RBucketAsync
,RBucketReactive
,RBucketRx
interfaces
🔋 Feature -addListener
andremoveListener
methods added toRObject
,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
orCompletable
🛠Fixed - compatibility with hibernate 5.2.0 - 5.2.4 versions
Fixed - ClassCastException duringRBatchReactive
andRBatchRx
execution inexectionMode
=REDIS_WRITE_ATOMIC
orREDIS_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 byMapCacheEventCodec
🛠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