Releases: redis/lettuce
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
PartitionSelectorException
during 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
ZRANGESTORE
does 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
double
timeouts forBZPOP
andBLPOP
/BRPOP
commands #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
dispatch
output gets reused #1876 - Specify concrete scheduler name #1898
- Add support for
SINTERCARD
#1902 - Add support for
LMPOP
andBLMPOP
commands #1903 - Add support for
CLUSTER DELSLOTSRANGE
andCLUSTER ADDSLOTSRANGE
commands #1904 - Add NX/XX/GT/LT options to
EXPIRE
commands #1905 - Avoid routing to cluster replicas that are loading data #1923
- Introduce
nodeFilter
Predicate
to filterPartitions
#1942 - Add exception type for
READONLY
errors #1943 - Add support for
ZINTERCARD
command #1982 - Add support
NOW
,FORCE
andABORT
args forSHUTDOWN
command #1985 - Add support for EVAL_RO and EVALSHA_RO commands #1987
- Support
CONFIG GET/SET
with multiple parameters #1988 - Add support for CLIENT NO-EVICT command #1989
- Add support for ACL DRYRUN command #1992
- Do not use pause detector for
CommandLatencyCollector
by default #1995 - Rename
ReadFrom.NEAREST
toLOWEST_LATENCY
to clarify its functionality #1997 - Add support for
REPLICAOF
andCLUSTER REPLICAS
commands #2020 - Add support for
CLUSTER SHARDS
command #2025 - Deprecate connection-related methods on commands API #2028
- Promote
AsyncCloseable
to 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
AutoCloseable
inAbstractRedisClient
#2076 - StatefulRedisClusterConnectionImpl getConnection always calls connection provider with Intent.WRITE #2095
- Add support for
XGROUP … ENTRIESREAD
#2141 - Add support for
EXPIRETIME
andPEXPIRETIME
#2142 - Assert Redis 7.0 compatibility #2143
- Add support for
SENTINEL REPLICAS
command #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
ClassCastException
when noLATENCY_UTILS_AVAILABLE
orHDR_UTILS_AVAILABLE
#1829- Static command interface methods are erroneously verified against command names #1833
- Coroutine commands that result in a
Flow
can hang #1837 - Fix
ACL SETUSER
when adding specified categories #1839 - Fix
ACL SETUSER
when setting noCommands #1846 ACL SETUSER
not 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
FlushMode
on upstreams only #1908 RoundRobinSocketAddressSupplier
is not refreshing whenRedisURI
changes #1909ClientResources.mutate()
leads toDefaultClientResources was not shut down properly
if the original instance is GC'd #1917BoundedPoolConfig
with-1
asmaxTotal
does not work as unlimited pool #1953CommandArgs
usingLong.MIN_VALUE
results in0
#2019SslClosedEngineException
thrown after exceeding connection init timeout #2023NodeTopologyView
passes null-Value toStringReader
constructor #2035MasterReplicaConnectionProvider
with zero connections causesIllegalArgumentException
#2036DefaultCommandLatencyCollector.PauseDetectorWrapper
definesPauseDetector
in 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
PooledClusterConnectionProvider
uses 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_uring
0.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
RedisCoroutinesCommands
calls 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
DirectProcessor
API #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
CommandLatencyCollector
by default #1995 - Rename
ReadFrom.NEAREST
toLOWEST_LATENCY
to clarify its functionality #1997 - Add support for
REPLICAOF
andCLUSTER REPLICAS
commands #2020 - Improving performance of
RedisAdvancedClusterAsyncCommandsImpl::mget
#2042 - Redis cluster refresh of large clusters keeps I/O threads busy #2045
🐞 Bug Fixes
CommandArgs
usingLong.MIN_VALUE
results in0
#2019SslClosedEngineException
thrown after exceeding connection init timeout #2023NodeTopologyView
passes null-Value toStringReader
constructor #2035MasterReplicaConnectionProvider
with zero connections causesIllegalArgumentException
#2036DefaultCommandLatencyCollector.PauseDetectorWrapper
definesPauseDetector
in 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
CommandLatencyCollector
by default #1995 - Rename
ReadFrom.NEAREST
toLOWEST_LATENCY
to clarify its functionality #1997 - Add support for
REPLICAOF
andCLUSTER REPLICAS
commands #2020 - Improving performance of
RedisAdvancedClusterAsyncCommandsImpl::mget
#2042 - Redis cluster refresh of large clusters keeps I/O threads busy #2045
🐞 Bug Fixes
CommandArgs
usingLong.MIN_VALUE
results in0
#2019SslClosedEngineException
thrown after exceeding connection init timeout #2023NodeTopologyView
passes null-Value toStringReader
constructor #2035MasterReplicaConnectionProvider
with 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
nodeFilter
Predicate
to filterPartitions
#1942 - Add exception type for
READONLY
errors #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
FlushMode
on upstreams only #1908 RoundRobinSocketAddressSupplier
is not refreshing whenRedisURI
changes #1909ClientResources.mutate()
leads toDefaultClientResources was not shut down properly
if the original instance is GC'd #1917BoundedPoolConfig
with-1
asmaxTotal
does 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
RedisCoroutinesCommands
calls 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
RoundRobinSocketAddressSupplier
is not refreshing whenRedisURI
changes #1909BoundedPoolConfig
with-1
asmaxTotal
does 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
ClassCastException
when noLATENCY_UTILS_AVAILABLE
orHDR_UTILS_AVAILABLE
#1829- Static command interface methods are erroneously verified against command names #1833
- Coroutine commands that result in a
Flow
can hang #1837 - Fix
ACL SETUSER
when adding specified categories #1839 - Fix
ACL SETUSER
when setting noCommands #1846 ACL SETUSER
not 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!
6.0.8.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.0.8 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.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.0.8.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.0.8.RELEASE/api/
🐞 Bug Fixes
- SSL CN name checked failed after Redis Sentinel failover #1812
ClassCastException
when noLATENCY_UTILS_AVAILABLE
orHDR_UTILS_AVAILABLE
#1829- Static command interface methods are erroneously verified against command names #1833
- Coroutine commands that result in a
Flow
can hang #1837
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.1.4.RELEASE
The Lettuce team is pleased to announce the Lettuce 6.1.4 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.4.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 16. It is tested continuously against the latest Redis source-build.
📗 Links
- Reference documentation: https://lettuce.io/core/6.1.4.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.1.4.RELEASE/api/
🐞 Bug Fixes
- Exception thrown during RedisClusterClient shutdown #1800
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!