tag:github.com,2008:https://github.com/redisson/redisson/releases Release notes from redisson 2026-03-02T06:54:45Z tag:github.com,2008:Repository/15823460/redisson-4.3.0 2026-03-02T07:46:32Z redisson-4.3.0 <p>Feature - <a href="https://redisson.pro/docs/messaging/#jms-api-implementation" rel="nofollow">JMS API</a> implemented<br> Feature - <a href="https://redisson.pro/docs/data-and-services/objects/#cuckoo-filter" rel="nofollow">RCuckooFilter</a> object added<br> Feature - Local cached Reactive Spring Session implemented<br> Feature - <code>RBitSet.bitField()</code> method added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Feature - <code>RBatch.getBloomFilterNative()</code> method added<br> Feature - <code>StreamAddArgs.idempotentProducerId()</code> method added<br> Feature - <code>hashCode()/equlas()</code> methods added to <code>StreamRangeParams</code> object (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Feature - <code>Message.getDeliveries()</code> method added</p> <p>Improvement - <code>tcpKeepAlive</code> setting is <code>true</code> by default</p> <p>Fixed - <code>RReliablePubSubTopic.setConfigIfAbsent()</code> throws NPE<br> Fixed - <code>Message.getCreationTime()</code> returns <code>null</code> for messages stored in <code>RReliableQueue</code><br> Fixed - corrupted <code>Input</code> object shouldn't be returned to the pool in <code>Kryo5Codec</code><br> Fixed - increased char array in <code>Kryo5Codec</code> isn't cleared when the <code>Input.reset()</code> method is invoked<br> Fixed - traffic burst may block <code>RRateLimiter</code> indefinitely<br> Fixed - attempt to unlock lock, not locked by current thread by node id error (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - <code>RTopicPattern</code> resubscription after failover (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/peterhalicky/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/peterhalicky">@peterhalicky</a>)<br> Fixed - <code>RBloomFilterNative</code>'s <code>add()</code>, <code>exists()</code>, <code>count()</code> return type<br> Fixed - Spring Data <code>ReactiveKeyCommands.scan()</code> method throws NPE if <code>count</code> setting isn't defined</p> mrniko tag:github.com,2008:Repository/15823460/redisson-4.2.0 2026-02-05T12:25:47Z redisson-4.2.0 <p>Feature - <a href="https://redisson.pro/docs/integration-with-spring/#spring-ai-vector-store" rel="nofollow">Spring AI Vector Store</a> implemented<br> Feature - AvroJackson3Codec, CborJackson3Codec, IonJackson3Codec, SmileJackson3Codec codecs added<br> Feature - RBloomFilterNative object added which covers BF.* commands (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Feature - RSearch.hasIndex() method added (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Feature - Jackson3Codec added for RJsonBucket and RJsonStore objects</p> <p>Breaking change - RSet.containsEach() returns Set (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)</p> <p>Fixed - RRingBuffer.clear() method shouldn't clear capacity (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Fixed - unnecessary attempts for BUSYGROUP error (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Fixed - RenewalTask.renewSlots() throws StackOverflowError with many locks (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/subbotinkv/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/subbotinkv">@subbotinkv</a>)<br> Fixed - RExecutorService.scheduleAtFixedRate() method can only be executed once (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Fixed - Stream ranges in Spring Data Redis module don't handle bounds (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Fixed - UUID serialization by Jackson codecs<br> Fixed - RBatch with ExecutionMode.REDIS_WRITE_ATOMIC throws NPEs<br> Fixed - RJsonBucket.setAndKeepTTLAsync() doesn't work (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jigneshcoder/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jigneshcoder">@jigneshcoder</a>)<br> Fixed - possible RedisTimeoutException and memory Growth after upgrading to Redisson 3.47.0 (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - missed redisson-spring-cache and redisson-spring-transaction dependencies for redisson-spring-boot-starter module<br> Fixed - RSearch VectorSimilarity param doesn't allow to specify scoreAlias and filter params<br> Fixed - javadocs: Config.setCleanUpKeysAmount() description (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MuriloMarquesSantos/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/MuriloMarquesSantos">@MuriloMarquesSantos</a>)<br> Fixed - errors logging improvement (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/GaoSSR/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/GaoSSR">@GaoSSR</a>)<br> Fixed - potential negative index in load balancers (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/GaoSSR/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/GaoSSR">@GaoSSR</a>)<br> Fixed - GraalVM reflection issue in Spring Native (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/GaoSSR/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/GaoSSR">@GaoSSR</a>)<br> Fixed - docs: update deprecation note for RedLock object (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mykronetix/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mykronetix">@mykronetix</a>)<br> Fixed - passwords encryption JDK 8 compatibility</p> mrniko tag:github.com,2008:Repository/15823460/redisson-4.1.0 2025-12-30T14:14:41Z redisson-4.1.0 <p>Feature - <a href="https://redisson.pro/docs/integration-with-spring/#local-cache" rel="nofollow">Local cached Spring Session</a> implemented<br> Feature - Hibernate 7.2 module added<br> Feature - support for Instant-based expiration in <code>RMapCacheNative</code> (thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Feature - <code>claim()</code> method added to <code>StreamMultiReadGroupArgs</code> and <code>StreamReadGroupArgs</code> for <code>RStream</code> object<br> Feature - <code>RBucket.getDigest()</code> method added<br> Feature - extended <code>RBucket.compareAndSet()</code> method added<br> Feature - <code>RBucket.compareAndDelete()</code> method added<br> Feature - <code>RMapCacheNative.putIfExists()</code> methods added with ttl and time arguments<br> Feature - <code>RBuckets.setIfAllKeysExist()</code> method added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>RBuckets.setIfAllKeysAbsent()</code> method added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>RMapCacheNative.putIfAllKeysExist()</code> method added<br> Feature - <code>RMapCacheNative.putIfAllKeysAbsent()</code> method added<br> Feature - extended <code>RMapCacheNative.putAll()</code> method added<br> Feature - <code>JsonJackson3Codec</code> and <code>TypedJsonJackson3Codec</code> codecs added<br> Feature - <code>RSearch.hybridSearch()</code> method added</p> <p><strong>Breaking change</strong> - Spring Cache implementation moved to <code>redisson-spring-cache/redisson-spring</code> module (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> <strong>Breaking change</strong> - Spring Transaction implementation moved to <code>redisson-spring-transaction/redisson-spring</code> module (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Anubhavagnihotrii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Anubhavagnihotrii">@Anubhavagnihotrii</a>)<br> <strong>Breaking change</strong> - <code>FstCodec</code>, <code>FuryCodec</code>, <code>MarshallingCodec</code>, <code>SnappyCodec</code> deprecated codecs have been removed</p> <p>Improvement - <code>redisson-spring-data</code> is a sub-module of <code>redisson-spring module</code><br> Improvement - <code>redisson-spring-boot-starter</code> is a sub-module of <code>redisson-spring</code><br> Improvement - <code>redisson-spring-cloud-stream-binder</code> is a sub-module of <code>redisson-spring</code></p> <p>Fixed - Spring Data Redis ttl() method returns <code>0</code> instead of <code>-1</code> when <code>TimeUnit.SECONDS</code> is used (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - incorrect delay calculations by <code>EqualJitterDelay</code> and <code>FullJitterDelay</code> after 57 attempts<br> Fixed - <code>Kryo5Codec</code> fails sometimes if <code>allowedClasses</code> specified<br> Fixed - <code>PendingEntry.lastTimeDelivered</code> renamed to <code>deliveryCount</code><br> Fixed - <code>REDIRECT</code> response handling<br> Fixed - Spring Boot attempts to start JCache instance<br> Fixed - LEAK: ByteBuf.release() was not called before it's garbage-collected after redirect handling (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)</p> mrniko tag:github.com,2008:Repository/15823460/redisson-4.0.0 2025-12-16T12:31:41Z redisson-4.0.0 <p>Feature - full-featured <a href="https://redisson.pro/docs/data-and-services/publish-subscribe/#reliable-pubsub" rel="nofollow">Reliable Pub/Sub</a> implemented. Provides topic-subscription-consumer model with message acknowledgment, grouping, seek/replay, Dead Letter Topic, and pull/push consumers<br> Feature - Quarkus 3.30.x integration<br> Feature - Spring Boot 4.0 integration<br> Feature - Spring Data Redis 4.0 module added<br> Feature - <code>database</code> setting added for Valkey Cluster Mode<br> Feature - <code>RSemaphore.releaseIfExists()</code> method added<br> Feature - <code>RBatch.getClusteredMapCacheNative()</code> method added<br> Feature - <code>RSearch.aggregate()</code> method with Iterable result added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>GEOSHAPE</code> field type added in <code>RSearch#createIndex()</code> method (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>expire(Duration, names)</code> and <code>expireAt(Instant, names)</code> methods added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/bandalgomsu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/bandalgomsu">@bandalgomsu</a>)<br> Feature - <code>compute(key, ttl, func)</code> and <code>computeIfAbsent(key, ttl, func)</code> methods added to <code>RMapCacheNative</code> object<br> Feature - <code>RClusteredLocalCachedMapCacheNativeV2</code>, <code>RMapCacheNativeV2</code>, <code>RClusteredMapCacheNativeV2</code>, <code>RLocalCachedMapCacheNativeV2</code> objects added with <code>maxSize</code> setting</p> <p><strong>Breaking change</strong> - dropped support of deprecated JSON config format<br> <strong>Breaking change</strong> - removed deprecated <code>getNodesGroup()</code> and <code>getClusterNodesGroup()</code> methods of <code>RedissonClient</code> object<br> <strong>Breaking change</strong> - removed deprecated methods of <code>RGeo</code> object<br> <strong>Breaking change</strong> - removed deprecated methods of <code>RFuture</code> object<br> <strong>Breaking change</strong> - removed deprecated support of Spring XML configuration<br> <strong>Breaking change</strong> - removed support of deprecated custom implementation of Spring Session<br> <strong>Breaking change</strong> - <code>RScript.ReturnType.MULTI</code> renamed to <code>LIST</code><br> <strong>Breaking change</strong> - <code>RScript.ReturnType.STATUS</code> renamed to <code>STRING</code><br> <strong>Breaking change</strong> - <code>RScript.ReturnType.INTEGER</code> renamed to <code>LONG</code><br> <strong>Breaking change</strong> - <code>NameMapper</code>, <code>NatMapper</code> classes moved to <code>org.redisson.config</code> package<br> <strong>Breaking change</strong> - <code>GeoUnit</code>, <code>GeoPosition</code>, <code>GeoOrder</code>, <code>GeoEntry</code> classes moved to <code>org.redisson.api.geo</code> package<br> <strong>Breaking change</strong> - <code>StreamConsumer</code>, <code>StreamGroup</code>, <code>StreamInfo</code>, <code>StreamMessageId</code>, <code>PendingEntry</code>, <code>PendingResult</code>, <code>AutoClaimResult</code>, <code>FastAutoClaimResult</code> classes moved to <code>org.redisson.api.stream</code> package</p> <p>Improvement - move auth parameters at Config object level (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Improvement - move nameMapper/commandMapper parameters at Config object level (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Improvement - move ssl parameters to Config object level (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Improvement - use SnakeYAML library directly for Config parsing<br> Improvement - lz4-java lib updated<br> Improvement - netty lib updated to 4.2.9<br> Improvement - Jackson library is now optional<br> Improvement - move tcp and keepAlive parameters at Config object level (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)</p> <p>Fixed - <code>ObjectParams.retryAttempts()</code> setting is 0 by default<br> Fixed - Spring Data <code>RedissonSubscription</code> object doesn't handle cluster failover<br> Fixed - locks extension process in LockTask and ReadLockTask (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Aleksandr-Kiriushkin-Miro/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Aleksandr-Kiriushkin-Miro">@Aleksandr-Kiriushkin-Miro</a>)<br> Fixed - <code>CROSSSLOT</code> Errors with Proxy Mode Redis Cluster and Locks usage<br> Fixed - <code>XREAD</code> blocking call may cause <code>ClassCastException</code><br> Fixed - an extra key is retained after <code>RLocalCachedMap.clearLocalCache()</code> method invocation<br> Fixed - <code>RedissonNode.start()</code> method throws <code>AutowiredAnnotationBeanPostProcessor requires a ConfigurableListableBeanFactory</code> error<br> Fixed - invalid JSON in resource-config.json (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Anubhavagnihotrii/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Anubhavagnihotrii">@Anubhavagnihotrii</a>)<br> Fixed - <code>RSemaphore</code> and <code>RLock</code> objects may wait too long if AOF enabled on Valkey or Redis side<br> Fixed - <code>EqualJitterDelay</code> and <code>FullJitterDelay</code> throw IllegalArgumentException if attempt &gt; 62<br> Fixed - <code>RClientSideCaching</code> doesn't clear parent Redisson instance local cache synchronously<br> Fixed - if prefix is configured, some hibernate caching configurations do not take effect (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - <code>CommandPubSubDecoder</code> may throw NPE<br> Fixed - replicated node timeout handling in Replicated mode (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/johnou/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/johnou">@johnou</a>)<br> Fixed - <code>RBucket.setIfAbsent()</code> is not rolling back on transaction (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - <code>get()</code> method of <code>RListMultimapCacheReactive</code> and <code>RSetMultimapCacheReactive</code> object doesn't work<br> Fixed - docs: Correct default value for <code>useScriptCache</code> setting (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lunakv/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lunakv">@lunakv</a>)<br> Fixed - javadocs: Rename method create to createIndex in RSearch (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/senocak/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/senocak">@senocak</a>)</p> mrniko tag:github.com,2008:Repository/15823460/redisson-3.52.0 2025-09-25T11:45:07Z redisson-3.52.0 <p>Feature - loadCoalescingConcurrency setting added to <code>RClusteredLocalCachedMapCache</code> object<br> Feature - implemented <code>EntraIdCredentialsResolver</code> for authentication using Microsoft Entra ID<br> Feature - added support of RStream <code>XDELEX</code> command (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - added support of RStream <code>XACKDEL</code> command (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - Apache Fory - <code>ForyCodec</code> added<br> Feature - added <code>RMapCache.compute()</code> method with ttl parameter (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - added <code>pollFirst()</code> &amp; <code>pollLast()</code> methods to <code>RSortedSet</code> (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - password can be specified in config endpoint url for Valkey or Redis cluster<br> Feature - added <code>WITHATTRIBS</code> and <code>EPSILON</code> parameters for <code>VSIM</code> command in <code>RVectorSet</code> object (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - RRateLimiter.release() method added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/moil-xm/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/moil-xm">@moil-xm</a>)<br> Feature - <code>CredentialsResolver.nextRenewal()</code> method added</p> <p><strong>Breaking change - VectorSimilarArgs.effort() method renamed to VectorSimilarArgs.explorationFactor()</strong><br> <strong>Breaking change - VectorSimilarArgs.effort() method renamed to VectorSimilarArgs.explorationFactor()</strong><br> <strong>Breaking change - VectorAddArgs.effort() method renamed to VectorAddArgs.explorationFactor()</strong><br> <strong>Breaking change - VectorAddArgs.element() renamed to VectorAddArgs.name()</strong><br> <strong>Breaking change - credentialsReapplyInterval setting removed and replaced with CredentialsResolver#nextRenewal()</strong></p> <p>Fixed - <code>Attempt to unlock lock, not locked by current thread by node id</code> error (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - cluster failover handling for <code>RBatch</code> object<br> Fixed - inconsistent Command Result Filtering in Spring Data Redis Transactions/Pipelines (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pengyongqiang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pengyongqiang">@pengyongqiang</a>)<br> Fixed - Spring Data Reactive module: <code>XPENDING</code> missing group (syntax error) and NPE on empty pending summary (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - NameMapper isn't applied properly for <code>RFairLock</code> object (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - Connection pool should prioritize recently used connections to allow idle connection discard<br> Fixed - QUIT command shouldn't be used<br> Fixed - ERR unknown command WAITAOF error<br> Fixed - <code>RLock</code> object doesn't work in MultiCluster mode<br> Fixed - redisson.license.expiration-year, redisson.license.expiration-month, redisson.license.expiration-day metrics output NaN</p> mrniko tag:github.com,2008:Repository/15823460/redisson-3.51.0 2025-08-22T13:23:06Z redisson-3.51.0 <p>Feature - <code>RBitSet.diff()</code>, <code>diffInverse()</code>, <code>andOr()</code>, <code>setExclusive()</code> methods added<br> Feature - <code>FieldIndex.svsVamanaVector()</code> vector indexing added (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>checkMasterLinkStatus</code> setting added for Cluster mode (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>RKeys.migrate()</code> method added with auth support (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Feature - added support of KEEPREF, DELREF and ACKED options to <code>RStream.trim()</code> method (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - added support of KEEPREF, DELREF and ACKED options to <code>RStream.add()</code> method (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - new FIRST_PRIMARY_PUBSUB_NOTIFICATION mode added to Multi Cluster <code>primaryDiscoveryMode</code> setting<br> Feature - new metrics "responses.busy", "responses.wait", "responses.tryagain", "responses.loading", "responses.ask", "responses.moved" added</p> <p>Improvement - <code>AbstractCacheMap.removeExpiredEntries()</code> method optimization (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Improvement - equals/hashcode implementation added to TransactionOptions<br> Improvement - Cluster manager uses IP if hostname can't be resolved (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Improvement - new API for <code>RStream.range()</code>, <code>RStream.rangeReversed()</code> and <code>RStream.listPending()</code> methods (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)</p> <p>Fixed - <code>RReliableQueue</code> message reached delivery limit isn't removed and moved to <code>deadLetterQueue</code><br> Fixed - visibility setting isn't applied if defined in <code>RReliableQueue</code> queue config<br> Fixed - license key can't be read if defined as JVM option<br> Fixed - <code>RClusteredLocalCachedMapCache.putIfAbsent()</code> method sends incorrect local cache update date (regression since 3.49.0)<br> Fixed - <code>RLocalCachedMapCacheV2.fastPutIfExists()</code> method doesn't work (regression since 3.49.0)<br> Fixed - <code>SyncStrategy.UPDATE</code> doesn't work for <code>RLocalCachedJsonStore</code><br> Fixed - <code>RClusteredLocalCachedMap.putIfAbsent()</code> and <code>fastPutIfAbsent()</code> methods don't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>RClusteredLocalCachedMap.putIfExists()</code> method doesn't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>RClusteredLocalCachedMapCache.putIfExists()</code> and <code>putIfAbsent()</code> methods doesn't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>RClusteredLocalCachedMapCache.fastPutIfExists()</code>, <code>putIfExists()</code>, <code>putIfAbsent()</code> and <code>fastPutIfAbsent()</code> methods don't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>RClusteredLocalCachedMapCacheNative.fastPutIfExists()</code>, <code>putIfExists()</code>, <code>putIfAbsent()</code> and <code>fastPutIfAbsent()</code> methods don't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>RReliableQueue.get(Codec, String)</code> method doesn't work<br> Fixed - Multi Cluster mode doesn't detect failed clusters<br> Fixed - null is printed in logs during connection in Cluster mode<br> Fixed - <code>RBitSet.and()</code>, <code>not()</code>, <code>or()</code>, <code>xor()</code> methods return void instead of number<br> Fixed - <code>RScheduledExecutorService.deregisterWorkers()</code> method throws an exception (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - <code>RLocalCachedMap.putIfExists()</code> method doesn't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>RLocalCachedMap.putIfAbsent()</code> method doesn't update the local cache if <code>storeCacheMiss = true</code><br> Fixed - <code>IllegalReferenceCountException</code> is thrown when using <code>RClientSideCaching</code> (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - failed Slave at Redisson start moment can't be discovered later in Cluster mode<br> Fixed - <code>INFO REPLICATION</code> command timeout logging<br> Fixed - graalvm: Classes that should be initialized at run time got initialized during image building (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - <code>DNSMonitor</code> logs a warning (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - race condition during elements eviction in LFU cache (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Fixed - when acquire by RPermitExpirableSemaphore it may fail in some case (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Fixed - Direct byte buffer leak when using <code>RLocalCachedMap</code> with <code>StoreMode.LOCALCACHE</code> for <code>readAllValues()</code>, <code>readAllMap()</code> and <code>readAllEntrySet()</code> methods (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Fixed - DataInputStream closing to prevent resource leak in <code>RedissonExecutorService.getClassBody()</code> method (thanks to @backstraw)<br> Fixed - added missed setters and getters for Config object in <code>RedissonSessionManager</code> (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jglapa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jglapa">@jglapa</a>)<br> Fixed - <code>RPermitExpirableSemaphore.tryAcquire()</code> doesn't work when acquiring &gt; 1 permit (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Fixed - <code>CommandMapper</code> isn't applied properly to <code>RScript</code> object (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lyrric/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lyrric">@lyrric</a>)<br> Fixed - synchronization of remote and local Tomcat SSO cache (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cogniware/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cogniware">@cogniware</a>)<br> Fixed - <code>FT.SEARCH</code> command is executed only on master nodes (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/pfyod/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/pfyod">@pfyod</a>)</p> mrniko tag:github.com,2008:Repository/15823460/redisson-3.50.0 2025-06-17T13:07:32Z redisson-3.50.0 <p>Feature - Apache Tomcat SSO integration (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cogniware/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cogniware">@cogniware</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/iamrakesh/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/iamrakesh">@iamrakesh</a>)<br> Feature - Valkey and Redis url may contain password only (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/noxvost/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/noxvost">@noxvost</a>)</p> <p>Fixed - Redisson can't connect to Azure Managed Redis Cluster (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/beetlebugorg/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/beetlebugorg">@beetlebugorg</a>)<br> Fixed - commons-codec and json-smart libs updated<br> Fixed - IllegalArgumentException: tickDuration : 0 (expected: &gt; 0) error is thrown</p> mrniko tag:github.com,2008:Repository/15823460/redisson-3.49.0 2025-06-04T08:49:48Z redisson-3.49.0 <p>Feature - <code>RClusteredScoredSortedSetRx</code>, <code>RClusteredScoredSortedSetReactive</code> interfaces added for <code>RClusteredScoredSortedSet</code> object<br> Feature - <code>iteratorAsync()</code> methods added to <code>RSet</code> object (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>readAllKeySetAsync(pattern)</code>, <code>readAllValuesAsync(pattern)</code> and <code>readAllEntrySetAsync()</code> methods added to RMap interface (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - Redisson PRO license key can be defined through <code>redisson.pro.key</code> key stored in Valkey or Redis</p> <p>Fixed - local cache update in <code>putIfAbsent()</code>, <code>fastPutIfExists()</code> and <code>fastPutIfAbsent()</code> methods of <code>RLocalCachedMapCache</code> and <code>RClusteredLocalCachedMapCache</code> objects<br> Fixed - <code>RLocalCachedMapCacheNative</code> object in <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RLocalCachedMapCacheNative.putIfAbsent()</code> method doesn't update local cache<br> Fixed - <code>RClusteredLocalCachedMapCacheNative</code> object in <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RClusteredLocalCachedMapCacheNative.putIfAbsent()</code> method doesn't update local cache<br> Fixed - <code>RClusteredLocalCachedMapCache</code> object in <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RLocalCachedMapCache</code> object in <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>put()</code>, <code>fastPutIfAbsent()</code>, <code>putIfAbsent()</code> methods of <code>RLocalCachedMapCacheV2</code> in <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RLocalCachedJsonStore</code> object in <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - missed classes added to the Hibernate 7 module<br> Fixed - <code>retryAttempts</code> setting value limit (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - <code>RObject.rename()</code> method doesn't work in batch mode if the new and old name slots match<br> Fixed - minTimeout value calculation for HashedWheelTimer object<br> Fixed - <code>codec</code>, <code>loader</code> and <code>writer</code> settings can't be parsed in Micronaut cache yaml configuration<br> Fixed - environment variables for Redisson configuration can't be used with Micronaut 4</p> mrniko tag:github.com,2008:Repository/15823460/redisson-3.48.0 2025-05-27T12:30:38Z redisson-3.48.0 <p>Feature - <code>retryDelay</code> and <code>reconnectionDelay</code> <a href="https://redisson.pro/docs/api-models/#command-execution-reliability" rel="nofollow">settings</a> added, allowing to define a delay strategy. Available implementations: <code>FullJitterDelay</code>, <code>EqualJitterDelay</code>, <code>DecorrelatedJitterDelay</code> and <code>ConstantDelay</code>. Default is <code>EqualJitterDelay</code><br> Feature - <a href="https://redisson.pro/docs/data-and-services/collections/#vector-set" rel="nofollow">Vector Set</a> object added<br> Feature - Spring Data Redis 3.5.0 implementation<br> Feature - Hibernate 7 support added</p> <p>Improvement - <code>RClusteredMapCache</code> eviction process optimization</p> <p>Fixed - <code>RLocalCachedMap</code> with <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RClusteredLocalCachedMap</code> with <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RLocalCachedMapCacheV2</code> with <code>storeMode = LOCALCACHE</code> may allocate extra connections and miss updates if <code>syncStrategy = UPDATE</code><br> Fixed - <code>RLocalCachedMapCacheV2</code> local cache updates<br> Fixed - <code>QueueTransferTask</code> throws NPE<br> Fixed - unknown command error is thrown if <code>RLock</code> object is used on Valkey Serverless deployment<br> Fixed - the count parameter of <code>RMap.valuesAsync()</code> method should not affect result<br> Fixed - <code>NOSCRIPT</code> error is thrown after failover by <code>RLock</code> methods<br> Fixed - RESP3 boolean value parsing</p> mrniko tag:github.com,2008:Repository/15823460/redisson-3.47.0 2025-05-21T09:59:17Z redisson-3.47.0 <p>Feature - <a href="https://redisson.pro/docs/data-and-services/queues/#reliable-fanout" rel="nofollow">ReliableFanout</a> object added<br> Feature - <a href="https://redisson.pro/docs/data-and-services/queues/#configuration" rel="nofollow">processingMode</a> setting added to <code>RReliableQueue</code> config<br> Feature - <a href="https://redisson.pro/docs/data-and-services/queues/#listeners" rel="nofollow">listeners</a> added to <code>RReliableQueue</code> object<br> Feature - <a href="https://redisson.pro/docs/data-and-services/queues/#metrics" rel="nofollow">metrics</a> added to <code>RReliableQueue</code> object<br> Feature - <code>disableOperation()</code> and <code>enableOperation()</code> methods added to <code>RReliableQueue</code> object<br> Feature - <code>get()</code> and <code>getAll()</code> methods added to <code>RReliableQueue</code> object<br> Feature - <code>pollBatchSize</code>, <code>visibilityTimeout</code>, <code>negativeAcknowledgeDelay</code> consumer settings added to Spring Cloud Stream Binder<br> Feature - <code>RReliableQueue</code> implements <code>RDestroyable</code> interface<br> Feature - <code>readDiffEntries()</code>, <code>readIntersectionEntries()</code>, <code>readUnionEntries()</code> methods added to RScoredSortedSet (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Feature - <code>valkeyCapabilities</code> setting added</p> <p>Improvement - script logging in error message if useScriptCache = true<br> Improvement - <code>RReliableQueue</code> data structure optimization</p> <p>Fixed - RClusteredLocalCachedMap.fastPut() method causes netty buffer leak if <code>storeMode = LOCALCACHE</code><br> Fixed - <code>RReliableQueue.size()</code> method result shouldn't include delayed messages amount<br> Fixed - Spring Cache.getNativeCache() returns incorrect instance<br> Fixed - exessive connections creation for RClusteredLocalCachedMap and RClusteredLocalCachedMapCache if 'reconnectionStrategy = LOAD'<br> Fixed - readUnion(), readIntersection(), readDiff() methods of RSetCache throw exception<br> Fixed - New connection opened for each write operation after failover in Sentinel mode (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - Micronaut 4.x connects only to a single node<br> Fixed - RedisURI(String) constructor doesn't set the hashCode<br> Fixed - Spring Data Redis <code>addMessageListener()</code> method hangs if multiple listeners added to the same topic or pattern<br> Fixed - detection of <code>WAIT</code> and <code>WAITAOF</code> commands availability<br> Fixed - JCacheManager does not remove cache instance from map when calling closeCache() (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/seakider/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/seakider">@seakider</a>)<br> Fixed - starvation of pub/sub connections may cause a memory leak<br> Fixed - <code>RMap.loadAll()</code> method may hang in Cluster<br> Fixed - <code>None of slaves were synced</code> exception is thrown<br> Fixed - Spring Data Redis <code>ReactiveZSetCommands.zadd()</code> default param (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lookroot/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lookroot">@lookroot</a>)</p> mrniko