All Versions
112
Latest Version
Avg Release Cycle
27 days
Latest Release
-

Changelog History
Page 4

  • v3.13.4 Changes

    September 02, 2020

    πŸ”‹ Feature - batch support for revRank, getScore, addAndGetRevRank methods added to RScoredSortedSet object (thanks to @johnou)
    πŸ”‹ Feature - RRateLimiter.setRate method added (thanks to @AbhishekChandrasekaran)
    πŸ”‹ Feature - RObject.getIdleTime() method added
    πŸ”‹ Feature - RKeys.getKeysWithLimit() method added

    πŸ›  Fixed - RRateLimiter.availablePermits() method throws exception (regression since 3.13.3)
    πŸ›  Fixed - compatibility with Spring Data Redis 2.3.3
    πŸ›  Fixed - UnsupportedOperationException is thrown if Spring Data Redis connection executed in pipelined mode
    πŸ›  Fixed - multiple Tomcat requests share different instances stored in the same session in readMode=REDIS
    πŸ›  Fixed - Spring Data Redis can't be used with proxied RedissonClient instance
    πŸ›  Fixed - Classloading issues when MarshallingCodec used in Tomcat
    πŸ›  Fixed - Redis cluster slot calculation doesn't work properly if brace isn't closed (thanks to @dengliming)
    πŸ›  Fixed - RBloomFilter rename method doesn't rename config object (thanks to @dengliming)
    πŸ›  Fixed - slf4j-simple dependency excluded from redisson-all
    πŸ›  Fixed - JCache.removeAsync method throws NPE if operation fails
    πŸ›  Fixed - all cached Lua scripts are executed on Redis master nodes only
    πŸ›  Fixed - XPENDING command causes syntax error in redisson-spring-data-23
    πŸ›  Fixed - CommandPubSubDecoder throws NPE
    πŸ›  Fixed - MasterSlaveConnectionManager allocates superfluous 113Kb of memory for non-cluster Redis setup

  • v3.13.3 Changes

    August 05, 2020

    πŸ”‹ Feature - BITFIELD command support added to RBitSet object

    πŸ‘Œ Improvement - reset ClassIntrospector instance after RLiveObjectService.persist() method invocation
    πŸ‘Œ Improvement - amount of simultaneously created connections during pool initialization reduced to 10

    πŸ›  Fixed - "SlaveConnectionPool no available Redis entries" error is thrown after failover
    πŸ›  Fixed - check RedisConnection status befor RedisConnection object join freeConnections (thanks to @mikawudi)
    πŸ›  Fixed - different topics subscribed to the same Redis node in Cluster
    πŸ›  Fixed - RFairLock.tryLock() method doesn't apply waitTimeout parameter
    πŸ›  Fixed - RLiveObjectService.delete() method works asynchronously
    πŸ›  Fixed - deserialization exception is thrown if RMapCache.EntryRemovedListener is set
    πŸ›  Fixed - incorrect registration of Sentinel node defined with hostname
    πŸ›  Fixed - OOM arise during RLiveObjectService.persist() method invocation
    πŸ›  Fixed - MarshallingCodec throws IllegalArgumentException: RIVER
    πŸ›  Fixed - RLock.lock() method throws java.util.NoSuchElementException
    πŸ›  Fixed - Spring Data Redis xReadGroup should use write operation
    πŸ›  Fixed - Spring Data Redis connection in multi mode may cause thread hang
    πŸ›  Fixed - Spring Data Redis connection in multi mode may cause connection leak
    πŸ›  Fixed - RRateLimiter rate interval might be exceeded

  • v3.13.2 Changes

    July 02, 2020

    πŸ”‹ Feature - Partitioning (sharding) of Redis setup using ShardedRedisson object
    πŸ”‹ Feature - CLUSTERDOWN error handling
    πŸ”‹ Feature - getConfig, setConfig methods added to RedisNode interface

    πŸ›  Fixed - empty sentinels list handling
    πŸ›  Fixed - RMapCache.clear() method clears maxSize option
    πŸ›  Fixed - Redisson slowdowns access to hibernate in fallback mode
    πŸ›  Fixed - Sentinel hostname isn't used for ssl connection during Redisson startup
    πŸ›  Fixed - RBloomFilter methods throw NPE if RedisException thrown
    πŸ›  Fixed - RAtomicDouble.getAndSet() method throws NPE
    πŸ›  Fixed - RAtomicLong.getAndSet() method throws NPE
    πŸ›  Fixed - ClassCastException thrown in Tomcat environment
    πŸ›  Fixed - RSetMultimap.get().delete() and RListMultimap.get().delete() methods throw exception
    πŸ›  Fixed - blocking commands connected to Redis Cluster aren't resubscribed after Master node failover
    πŸ›  Fixed - connection leak if SSL connection got reconnected

  • v3.13.1 Changes

    June 11, 2020

    πŸ”‹ Feature - Spring Data Redis 2.3.0 integration
    πŸ”‹ Feature - setIfExists method added to RBucket, RBucketRx, RBucketReactive interfaces
    πŸ”‹ Feature - RExpirable interface added to RRateLimiter

    πŸ›  Fixed - Topic channels connected to master node aren't resubscribed
    πŸ›  Fixed - RedissonCacheStatisticsAutoConfiguration conditions aren't match
    πŸ›  Fixed - RTimeSeries.destroy() method doesn't work
    πŸ›  Fixed - Redis Cluster topology scanning stopped if error occured while adding new master
    πŸ›  Fixed - StreamInfoDecoder to adapt to layout of XINFO response (thanks to @fawitte)
    πŸ›  Fixed - Redis Cluster manager throws error Slot hasn't been discovered yet after failover
    πŸ›  Fixed - Spring Data Redis RedisConnection.set() method returns null
    πŸ›  Fixed - RQueueReactive.poll(int limit) method should return Mono<List<V>>
    πŸ›  Fixed - RQueueRx.poll(int limit) method should return Single<List<V>>
    πŸ›  Fixed - RedissonSetMultimap.removeAll method removes reference to nested set
    πŸ›  Fixed - WriteRedisConnectionException is thrown after Redis Cluster failover
    πŸ›  Fixed - RBatch object doesn't wait ending of sync slaves process
    πŸ›  Fixed - ssl connection can't be established if Redis Sentinel was discovered by DNSMonitor
    πŸ›  Fixed - some tasks are not executed if RedissonNode shutdown
    πŸ›  Fixed - NatMapper is not applied to the first online Sentinel in list

  • v3.13.0 Changes

    May 22, 2020

    Feature - TimeSeries object added. Please refer to documentation for more details
    πŸ”‹ Feature - RLiveObjectService.findIds() method implemented
    πŸ”‹ Feature - RLiveObjectService.count() method implemented
    πŸ”‹ Feature - RLiveObjectService.delete() method accepts multiple ids

    0️⃣ Improvement - default codec changed to MarshallingCodec

    πŸ›  Fixed - Lock acquisition hangs if Redis failed (regression since 3.12.5)
    πŸ›  Fixed - RLiveObjectService.merge() method doesn't override collection state
    πŸ›  Fixed - PingConnectionHandler doesn't report errors if PING command can't be sent
    πŸ›  Fixed - RObject.unlink() method calls deleteAsync() inside instead of unlinkAsync() method (thanks to @AayushyaVajpayee)
    πŸ›  Fixed - NPE thrown after logout Tomcat application
    πŸ›  Fixed - Tomcat UpdateValue object throws NPE if getNext() returns null
    πŸ›  Fixed - RedissonTransactionalMapCache.put() method inserts entries with incorrect TTLs
    πŸ›  Fixed - connections to Redis master/slave are doubled after redis cluster failover
    πŸ›  Fixed - RejectedExecutionException thrown by RedisClient.connectAsync() method during shutdown process
    πŸ›  Fixed - cache isn't applied to hibernate collection, that is joined by non primary key field
    πŸ›  Fixed - hibernate 5.3 doesn't wrap cache exception into CacheException object
    πŸ›  Fixed - RedissonReactiveStringCommands.set using wrong SET RedisCommand (thanks to @xJoeWoo)
    πŸ›  Fixed - netty errors should be logged at ERROR level

  • v3.12.5 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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