Releases: redis/lettuce
6.2.2.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.2.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.2.RELEASE/api/
🐞 Bug Fixes
- The hostname and password cannot parse even if escaping with RedisURI redis-sentinel the password include '@' and '#' #2254
- Fix password parsing error when redis-sentinel URI contains @ #2255
- XTrimArgs Should Allow Limit = 0 #2250
- NullPointerException if INFO command on redis cluster fails #2243
- Own
RedisCredentialsProvidercauses issue with protocol handshake on Redis 5 #2234 - Proper creation of
AttributeKey#2111
💡 Other
- Improve Document on dynamicRefreshSources #2139
- Improve Document on pingBeforeActivateConnection #2138
- Shutdown issue #2111
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.1.10.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.10 service release!
This release ships with bugfixes and dependency upgrades.
Find the full changelog at the end of this document.
Thanks to all contributors who made Lettuce 6.1.10.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 7.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 19. It is tested continuously against the latest Redis source-build
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.10.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.10.RELEASE/api/
🐞 Bug Fixes
- zrevrangestorebylex/zrevrangestorebyscore range arguments flipped #2203
- SMISMEMBER is not marked a readonly command #2197
- RedisURI.Builder#withSsl(RedisURI) not working with SslVerifyMode#CA #2182
- INFO response parsing throws on encountering '\n' on NodeTopologyView #2161
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.2.1.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.2.1 service release!
This release ships with bugfixes and dependency upgrades.
Find the full changelog at the end of this document.
Thanks to all contributors who made Lettuce 6.2.1.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 7.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 19. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.1.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.1.RELEASE/api/
⭐ New Features
- Make SlotHash utility methods public #2199
🐞 Bug Fixes
- INFO response parsing throws on encountering '\n' on NodeTopologyView #2161
PartitionSelectorExceptionduring refresh ofPartitions#2178- RedisURI.Builder#withSsl(RedisURI) not working with SslVerifyMode#CA #2182
- SMISMEMBER is not marked a readonly command #2197
- Eval lua script expects return integer but null #2200
ZRANGESTOREdoes not support by Rank comparison #2202- zrevrangestorebylex/zrevrangestorebyscore range arguments flipped #2203
💡 Other
- Fixes typo in ReadFrom #2213
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.2.0.RELEASE
The Lettuce team is delighted to announce general availability of Lettuce 6.2.
This is a massive release thanks to all the community contributions. Most notable changes
that ship with this release are:
- Support for Redis 7.0 commands and modifier/argument updates
Lettuce 6 supports Redis 2.6+ up to Redis 7.x. In terms of Java runtime, Lettuce requires
at least Java 8 and works with Java 18.
Thanks to all contributors who made Lettuce 6.2.0 possible.
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.0.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.0.RELEASE/api/
⭐ New Features
- Allow configuring a default ThreadFactoryProvider to create ClientResources #1711
- Introduce API to allow for extending RedisClusterClient and its connections #1754
- Could not initialize JfrConnectionCreatedEvent #1767
- Add support for
doubletimeouts forBZPOPandBLPOP/BRPOPcommands #1772 - Password Rotation support - Add a CredentialProvider interface/class and set your own provider #1774
- Emit command latency events using JFR #1820
- Lettuce loosing clientTracking after Reconnect #1838
- NodeSelection
dispatchoutput gets reused #1876 - Specify concrete scheduler name #1898
- Add support for
SINTERCARD#1902 - Add support for
LMPOPandBLMPOPcommands #1903 - Add support for
CLUSTER DELSLOTSRANGEandCLUSTER ADDSLOTSRANGEcommands #1904 - Add NX/XX/GT/LT options to
EXPIREcommands #1905 - Avoid routing to cluster replicas that are loading data #1923
- Introduce
nodeFilterPredicateto filterPartitions#1942 - Add exception type for
READONLYerrors #1943 - Add support for
ZINTERCARDcommand #1982 - Add support
NOW,FORCEandABORTargs forSHUTDOWNcommand #1985 - Add support for EVAL_RO and EVALSHA_RO commands #1987
- Support
CONFIG GET/SETwith multiple parameters #1988 - Add support for CLIENT NO-EVICT command #1989
- Add support for ACL DRYRUN command #1992
- Do not use pause detector for
CommandLatencyCollectorby default #1995 - Rename
ReadFrom.NEARESTtoLOWEST_LATENCYto clarify its functionality #1997 - Add support for
REPLICAOFandCLUSTER REPLICAScommands #2020 - Add support for
CLUSTER SHARDScommand #2025 - Deprecate connection-related methods on commands API #2028
- Promote
AsyncCloseableto public API #2030 - Improving performance of RedisAdvancedClusterAsyncCommandsImpl::mget #2042
- Redis cluster refresh of large clusters keeps I/O threads busy #2045
- Reduces overhead of RedisClusterNode.forEachSlot #2058
- Implement
AutoCloseableinAbstractRedisClient#2076 - StatefulRedisClusterConnectionImpl getConnection always calls connection provider with Intent.WRITE #2095
- Add support for
XGROUP … ENTRIESREAD#2141 - Add support for
EXPIRETIMEandPEXPIRETIME#2142 - Assert Redis 7.0 compatibility #2143
- Add support for
SENTINEL REPLICAScommand #2144 - Add support for
SORT_RO#2145
🐞 Bug Fixes
- Fix potential null-dereference in CommandHandler #1703
- Cannot refresh Redis Cluster topology #1706
RedisPubSubCommands,RedisClusterPubSubCommands, and other types missing inreflect-config.json#1710- Additional Redis PubSub types missing from reflect-config.json #1737
- AbstractRedisClient#shutdown() never ends when Redis is unstable #1768
- Closing ClusterNodeEndpoint asynchronously doesn't retrigger buffered commands #1769
- CopyArgs should honor replace parameter value instead of doing null check only #1777
- Exception thrown during RedisClusterClient shutdown #1800
- SSL CN name checked failed after Redis Sentinel failover #1812
ClassCastExceptionwhen noLATENCY_UTILS_AVAILABLEorHDR_UTILS_AVAILABLE#1829- Static command interface methods are erroneously verified against command names #1833
- Coroutine commands that result in a
Flowcan hang #1837 - Fix
ACL SETUSERwhen adding specified categories #1839 - Fix
ACL SETUSERwhen setting noCommands #1846 ACL SETUSERnot retaining argument order #1847- io.lettuce.core.protocol.CommandExpiryWriter cannot be cast to io.lettuce.core.protocol.DefaultEndpoint #1882
- Attempting to execute commands during a JVM shutdown will cause a RedisConnectionFailureException / IllegalStateException: Shutdown in progress #1883
- Tracing incorrect when command execute timeout #1901
- Run flush commands with
FlushModeon upstreams only #1908 RoundRobinSocketAddressSupplieris not refreshing whenRedisURIchanges #1909ClientResources.mutate()leads toDefaultClientResources was not shut down properlyif the original instance is GC'd #1917BoundedPoolConfigwith-1asmaxTotaldoes not work as unlimited pool #1953CommandArgsusingLong.MIN_VALUEresults in0#2019SslClosedEngineExceptionthrown after exceeding connection init timeout #2023NodeTopologyViewpasses null-Value toStringReaderconstructor #2035MasterReplicaConnectionProviderwith zero connections causesIllegalArgumentException#2036DefaultCommandLatencyCollector.PauseDetectorWrapperdefinesPauseDetectorin method signatures #2056- decorrelatedJitter and fullJitter delay calculation overflows #2115
- XPending command cannot be called with IDLE param without defining CONSUMER #2132
- Routing XREADGROUP command in Redis cluster #2140
- Ensure
PooledClusterConnectionProvideruses correct write-connection #2146 - CommandHandler's validateWrite method has a calculated overflow problem #2150
💡 Other
- Edit wiki for versioned pages #1699
- RedisURI: improve deprecation notice in withPassword() #1707
- Improve kotlin api generator to provide replacement for a deprecated method #1759
- cancelCommandsOnReconnectFailure should have appropriate warnings. #1787
- Upgrade to
netty-incubator-transport-native-io_uring0.0.8.Final#1798 - Upgrade to Reactor 3.4 #1804
- Upgrade to Commons Pool 2.10.0 #1805
- Upgrade to Micrometer 1.7 #1806
- Upgrade to Kotlin 1.5 #1807
- Dependency upgrades #1808
- Fixed obvious typo in MicrometerOptions.Builder.minLatency(Duration) #1826
- Upgrade dependencies #1853
- Upgrade build to Java 17 #1854
- Deprecate
AbstractRedisClient.setDefaultTimeout(…)to avoid ambiguity withRedisURI.getTimeout()#1868 - Replace reactor's deprecated API #1885
- A question about the letuce CI project view #1914
- Bump log4j-core to 2.15.0 #1934
- Upgrade log4j to 2.17 to address CVE-2021-45105 #1941
- Extend copyright license years to 2022 #1952
RedisCoroutinesCommandscalls are locked after calling multi() #1954- Add tests for Sentinel with ACL authentication #1956
- Fix Javadoc link in README #1959
- Upgrade dependencies #1962
- Docs have some minor spacing and grammar issues #1993
- Fix a little typo #2003
- Use HTTPS for links #2026
- Separate profile to support m1 chip #2043
- Bump netty to fix vulnerability issue #2098
- Move off deprecated
DirectProcessorAPI #2136 - Upgrade to Netty 4.1.79.Final #2153
- Upgrade to Micrometer 1.9.2 #2154
- Upgrade to Reactor 3.4.21 #2155
- Upgrade to Reactive Streams 1.0.4 #2156
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
- @180254
- @Alfagun74
- @HashZhang
- @JGulbronson
- @RohanNagar
- @Shoothzj
- @Yanam
- @aashishamrute
- @adiamzn
- @andreas-trvlk
- @anothertobi
- @be-hase
- @btthorstenwitt
- @christophstrobl
- @cjs1992-github
- @craftmaster2190
- @dengliming
- @domi-nika60
- @eleftherias
- @fedigiorgio
- @gkorland
- @hebelala
- @henry701
- @ikeyat
- @jay-june
- @jdeppe-pivotal
- @jhmartin
- @jord1e
- @jruaux
- @kgrits
- @langchristian96
- @lianghuang
- @m-ibot
- @mattfff
- @mikeamzn
- @mvdobrinin
- @napstr
- @oridool
- @pablotp
- @pedrovilasboas
- @perlun
- @sinrimin
- @sokomishalov
- @stillerrr
- @tawAsh1
- @theArtechnology
- @travispeloton
- @wbzj1110
6.1.9.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.9 service release!
This release ships with bugfixes and dependency upgrades.
Find the full changelog at the end of this document.
Thanks to all contributors who made Lettuce 6.1.9.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 7.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 17. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.9.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.9.RELEASE/api/
⭐ New Features
- Reduces overhead of RedisClusterNode.forEachSlot #2058
🐞 Bug Fixes
- decorrelatedJitter and fullJitter delay calculation overflows #2115
- XPending command cannot be called with IDLE param without defining CONSUMER #2132
- Routing XREADGROUP command in Redis cluster #2140
- CommandHandler's validateWrite method has a calculated overflow problem #2150
💡 Other
- Bump netty to fix vulnerability issue #2098
- Upgrade to Netty 4.1.79.Final #2153
- Upgrade to Reactor 3.4.20 #2155
- Upgrade to Reactive Streams 1.0.4 #2156
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.1.8.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.8 service release!
This release ships with bug fixes and dependency upgrades.
6.1.8 is a re-release of 6.1.7 with a fixed regression.
Thanks to all contributors who made Lettuce 6.1.8.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 6.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 17. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.8.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.8.RELEASE/api/
⭐ New Features
- Do not use pause detector for
CommandLatencyCollectorby default #1995 - Rename
ReadFrom.NEARESTtoLOWEST_LATENCYto clarify its functionality #1997 - Add support for
REPLICAOFandCLUSTER REPLICAScommands #2020 - Improving performance of
RedisAdvancedClusterAsyncCommandsImpl::mget#2042 - Redis cluster refresh of large clusters keeps I/O threads busy #2045
🐞 Bug Fixes
CommandArgsusingLong.MIN_VALUEresults in0#2019SslClosedEngineExceptionthrown after exceeding connection init timeout #2023NodeTopologyViewpasses null-Value toStringReaderconstructor #2035MasterReplicaConnectionProviderwith zero connections causesIllegalArgumentException#2036DefaultCommandLatencyCollector.PauseDetectorWrapperdefinesPauseDetectorin method signatures #2056
💡 Other
- Docs have some minor spacing and grammar issues #1993
- Fix a little typo #2003
- Use HTTPS for links #2026
- Separate profile to support m1 chip #2043
- Upgrade to netty 4.1.75.Final #2047
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.1.7.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.7 service release!
This release ships with bug fixes and dependency upgrades.
Thanks to all contributors who made Lettuce 6.1.7.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 6.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 17. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.7.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.7.RELEASE/api/
⭐ New Features
- Do not use pause detector for
CommandLatencyCollectorby default #1995 - Rename
ReadFrom.NEARESTtoLOWEST_LATENCYto clarify its functionality #1997 - Add support for
REPLICAOFandCLUSTER REPLICAScommands #2020 - Improving performance of
RedisAdvancedClusterAsyncCommandsImpl::mget#2042 - Redis cluster refresh of large clusters keeps I/O threads busy #2045
🐞 Bug Fixes
CommandArgsusingLong.MIN_VALUEresults in0#2019SslClosedEngineExceptionthrown after exceeding connection init timeout #2023NodeTopologyViewpasses null-Value toStringReaderconstructor #2035MasterReplicaConnectionProviderwith zero connections causesIllegalArgumentException#2036
💡 Other
- Docs have some minor spacing and grammar issues #1993
- Fix a little typo #2003
- Use HTTPS for links #2026
- Separate profile to support m1 chip #2043
- Upgrade to netty 4.1.75.Final #2047
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.1.6.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.6 service release!
This release ships with bugfixes and dependency upgrades.
Find the full changelog at the end of this document.
Thanks to all contributors who made Lettuce 6.1.6.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 6.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 17. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.6.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.6.RELEASE/api/
⭐ New Features
- Specify concrete scheduler name #1898
- Avoid routing to cluster replicas that are loading data #1923
- Introduce
nodeFilterPredicateto filterPartitions#1942 - Add exception type for
READONLYerrors #1943
🐞 Bug Fixes
- io.lettuce.core.protocol.CommandExpiryWriter cannot be cast to io.lettuce.core.protocol.DefaultEndpoint #1882
- Attempting to execute commands during a JVM shutdown will cause a RedisConnectionFailureException / IllegalStateException: Shutdown in progress #1883
- Tracing incorrect when command execute timeout #1901
- Run flush commands with
FlushModeon upstreams only #1908 RoundRobinSocketAddressSupplieris not refreshing whenRedisURIchanges #1909ClientResources.mutate()leads toDefaultClientResources was not shut down properlyif the original instance is GC'd #1917BoundedPoolConfigwith-1asmaxTotaldoes not work as unlimited pool #1953
💡 Other
- Upgrade build to Java 17 #1854
- Bump log4j-core to 2.15.0 #1934
- Upgrade log4j to 2.17 to address CVE-2021-45105 #1941
- Upgrade to Netty 4.1.72.Final #1950
- Extend copyright license years to 2022 #1952
RedisCoroutinesCommandscalls are locked after calling multi() #1954- Upgrade dependencies #1962
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.0.9.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.0.9 service release!
This release ships with bugfixes and dependency upgrades.
Find the full changelog at the end of this document.
Thanks to all contributors who made Lettuce 6.0.9.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 6.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 17. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.0.9.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.0.9.RELEASE/api/
🐞 Bug Fixes
- Attempting to execute commands during a JVM shutdown will cause a RedisConnectionFailureException / IllegalStateException: Shutdown in progress #1883
- Tracing incorrect when command execute timeout #1901
RoundRobinSocketAddressSupplieris not refreshing whenRedisURIchanges #1909BoundedPoolConfigwith-1asmaxTotaldoes not work as unlimited pool #1953
💡 Other
- Upgrade build to Java 17 #1854
- A question about the letuce CI project view #1914
- Bump log4j-core to 2.15.0 #1934
- Upgrade log4j to 2.17 to address CVE-2021-45105 #1941
- Upgrade to Netty 4.1.72.Final #1950
- Extend copyright license years to 2022 #1952
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.1.5.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.5 service release!
This release ships with bugfixes and dependency upgrades.
Find the full changelog at the end of this document.
Thanks to all contributors who made Lettuce 6.1.5.RELEASE possible. Lettuce 6 supports
Redis 2.6+ up to Redis 6.x. In terms of Java runtime, Lettuce requires at least Java 8 and
works with Java 17. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.5.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.5.RELEASE/api/
🐞 Bug Fixes
- SSL CN name checked failed after Redis Sentinel failover #1812
ClassCastExceptionwhen noLATENCY_UTILS_AVAILABLEorHDR_UTILS_AVAILABLE#1829- Static command interface methods are erroneously verified against command names #1833
- Coroutine commands that result in a
Flowcan hang #1837 - Fix
ACL SETUSERwhen adding specified categories #1839 - Fix
ACL SETUSERwhen setting noCommands #1846 ACL SETUSERnot retaining argument order #1847
💡 Other
- Improve kotlin api generator to provide replacement for a deprecated method #1759
- Upgrade dependencies #1853
- Upgrade build to Java 17 #1854
❤️ Contributors
We'd like to thank all the contributors who worked on this release!