Releases: redis/lettuce
6.4.0.RELEASE
⭐ New Features
- Implement
HPEXPIRE
,HPEXPIREAT
,HPEXPIRETIME
,HTTL
and HPTTL` (#2857) - Implement
HEXPIRE
,HEXPIREAT
,HEXPIRETIME
andHPERSIST
(#2836) - Mark dnsResolver(DnsResolver) as deprecated. (#2855)
- implementation of
PUBSUB SHARDCHANNELS
(#2793) - Add support for
SUNSUBSCRIBE
#2759 (#2851) - Add support for
SPUBLISH
(#2838) - Add a
evalReadOnly
overload that accepts the script as aString
(#2868) XREAD
support for reading last message from stream (#2863)- Send the
CLIENT SETINFO
command in a fire-and-forget way (#2823) - Add support
CLIENT KILL [MAXAGE]
(#2782) - Support
HSCAN
withNOVALUES
argument (#2816) - Server addressed the issues of empty list returned for missing keys (#2899)
🐞 Bug Fixes
💡 Other
- Fixed the release flow (#2896)
- Setting the next release to be 6.4.x as part of #2880 (#2881)
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1 (#2875)
- Bump org.apache.maven.plugins:maven-assembly-plugin from 3.6.0 to 3.7.1 by @dependabot (#2887)
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0 (#2873)
- Bump org.apache.commons:commons-pool2 from 2.11.1 to 2.12.0 (#2877)
- Bump org.codehaus.mojo:flatten-maven-plugin from 1.5.0 to 1.6.0 (#2874)
- Bump org.openjdk.jmh:jmh-generator-annprocess from 1.21 to 1.37 (#2876)
- Bump reactor.version from 3.6.4 to 3.6.6 by @dependabot (#2889)
- Add release drafter workflow (#2820)
- Applying code formatter each time we run a Maven build (#2841)
- Flaky integration test frequently fails the pipeline (#2844)
- GitHub issue template polishing and stale issues action (#2833)
- Attempt to stabilize integration tests (#2825)
- Add snapshot and release workflows (#2810)
- Fix license in POM (#2812)
- Created CodeQL analysis configuration by modifying suggested template (#2811)
- bump setup-java to v4 (#2807)
- Added unit tests for most of the pubsub classes that did not have any (#2808)
- Change the license to more permissive MIT (#2803)
- CI/CD quickstart (#2777)
- Updated release acton (as part of #2880) by @tishun in #2885
- Fixed the release flow by @tishun in #2896
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
@BalmungSan, @atakavci, @dengliming, @dependabot, @dependabot[bot], @gerzse, @mp911de, @sullis, @thachlp, @tishun, @uglide and @yfwz100
Full Changelog: 6.3.0.RELEASE...6.4.0.RELEASE
6.4.0.M1
What's Changed
- CI/CD quickstart by @tishun in #2777
- implementation of PUBSUB SHARDCHANNELS by @atakavci in #2793
- Change the license to more permissive MIT by @uglide in #2803
- Added unit tests for most of the pubsub classes that did not have any by @tishun in #2808
- bump setup-java to v4 by @sullis in #2807
- Created CodeQL analysis configuration by modifying suggested template by @tishun in #2811
- Fix license in POM by @uglide in #2812
- Add snapshot and release workflows by @uglide in #2810
- Support HSCAN with NOVALUES argument by @gerzse in #2816
- Send the CLIENT SETINFO command in a fire-and-forget way by @tishun in #2823
- Attempt to stabilize integration tests by @tishun in #2825
- GitHub issue template polishing and stale issues action by @tishun in #2833
- Implement HEXPIRE, HEXPIREAT, HEXPIRETIME and HPERSIST by @tishun in #2836
- Flaky integration test frequently fails the pipeline by @tishun in #2844
- Add support for
SPUBLISH
by @atakavci in #2838 - Applying code formatter each time we run a Maven build by @tishun in #2841
- Add support CLIENT KILL [MAXAGE] by @dengliming in #2782
- Add support for
SUNSUBSCRIBE
#2759 by @atakavci in #2851 - Mark dnsResolver(DnsResolver) as deprecated. by @yfwz100 in #2855
- Implement HPEXPIRE, HPEXPIREAT, HPEXPIRETIME, HTTL and HPTTL by @tishun in #2857
- XREAD support for reading last message from stream by @tishun in #2863
- Add a
evalReadOnly
overload that accepts the script as aString
by @BalmungSan in #2868 - Add release drafter workflow by @tishun in #2820
- Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.3 to 3.7.0 by @dependabot in #2873
- Bump org.codehaus.mojo:flatten-maven-plugin from 1.5.0 to 1.6.0 by @dependabot in #2874
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1 by @dependabot in #2875
- Bump org.openjdk.jmh:jmh-generator-annprocess from 1.21 to 1.37 by @dependabot in #2876
- Bump org.apache.commons:commons-pool2 from 2.11.1 to 2.12.0 by @dependabot in #2877
- Setting the next release to be 6.4.x as part of #2880 by @tishun in #2881
- Updated release notes by @tishun in #2882
New Contributors
- @atakavci made their first contribution in #2793
- @uglide made their first contribution in #2803
- @sullis made their first contribution in #2807
- @gerzse made their first contribution in #2816
- @yfwz100 made their first contribution in #2855
- @BalmungSan made their first contribution in #2868
- @dependabot made their first contribution in #2873
Full Changelog: 6.3.0.RELEASE...6.4.0.M1
6.3.2.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.3.2.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.3.2.RELEASE/api/
⭐ New Features
- Performance: Encoding of keys/values in CommandArgs when using a codec that implements ToByteBufEncoder #2610
- Switch to
ConcurrentLinkedQueue
to avoid expensivesize
calls #2602 - Use
HashedWheelTimer
for command expiration management to reduce thread context switches and improve performance #2773
🐞 Bug Fixes
- Connection reconnect suspended after reconnect to Redis with protected mode #2770
- Can't PUBLISH when subscribed with RESP3 #2594
💡 Other
- Upgrade dependencies #2780
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.3.1.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.3.1.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.3.1.RELEASE/api/
⭐ New Features
- Update
RedisVersion
parser to accept version numbers with non-numeric suffix #2557 ClusterTopologyRefreshOptions.Builder. enableAdaptiveRefreshTrigger (…)
without options should throwIllegalArgumentException
#2575- GraalVM - io.lettuce.core.metrics.DefaultCommandLatencyCollector$DefaultPauseDetectorWrapper was found in the image heap #2579
🐞 Bug Fixes
- Geosearch and FCALL_RO commands go to the master node #2568
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.3.0.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.3.0.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.3.0.RELEASE/api/
⭐ Commands
- Add
WITHSCORE
option toZRANK
andZREVRANK
commands #2410 - Add support for
CLIENT SETINFO
,CLIENT INFO
, and enhancedCLIENT LIST
#2439 ZMPOP
andBZMPOP
commands #2435- Support
FCALL
commands to Call Lua-scripts that are loaded as Function in redis #2185
⭐ New Features
- Add support for disconnect on timeout to recover early from no
RST
packet failures #2082 - Avoid buffer copies in
RedisStateMachine
#2173 - Make SlotHash utility methods public #2199
- Improve
AdaptiveRefreshTriggeredEvent
to provide the cause and contextual details #2338 - Refine
RedisException
instantiation to avoid exception instances if they are not used #2353 - Add capability of FailOver with takeOver option #2358
- Add option to disable tracing for individual commands #2373
- ReplicaTopologyProvider can't parse replicas from INFO #2375
- Add support for Micrometer Tracing #2391
- Add Command filter to
MicrometerCommandLatencyRecorder
#2406 - Expose methods to suspend periodic topology refresh and to check whether a topology refresh is running #2428
- Accept Double and Boolean in
MapOutput
#2429 - Array lists with set capacities in SimpleBatcher #2445
- Add fallback to RESP2 upon
NOPROTO
response #2455 - Introduce generic Object output #2467
- Propagate initialization failures from
ChannelInitializer
#2475 - Register library name and library version on Redis 7.2 or greater #2483
- Add support for cluster-announced hostname #2487
🐞 Bug Fixes
- Proper creation of
AttributeKey
#2111 - INFO response parsing throws on encountering '' 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
- Own
RedisCredentialsProvider
causes issue with protocol handshake on Redis 5 #2234 - NullPointerException if INFO command on redis cluster fails #2243
- XTrimArgs Should Allow Limit = 0 #2250
- 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
- Handle unknown endpoints in MOVED response #2290
- Fallback to RESP2 hides potential authentication configuration problems #2313
- Accept slots as String using
CLUSTER SHARDS
#2325 RedisURI.applySsl(…)
does not retainSslVerifyMode
#2328- Apply
SslVerifyMode
inRedisURI.applySsl(…)
#2329 - Fix long overflow in
RedisSubscription#potentiallyReadMore
#2383 - Consistently implement CompositeArgument in arg types #2387
- Reactive Cluster
MGET
is not running in parallel #2395 - Polish RedisObservation name & javadoc #2404
memory usage
command passes key asString
instead of using the codec #2424- Fix NPE when manually flushing a batch #2444
flushCommands
leads to random inbound command order when using large argument values with SSL #2456CommandListener
notified twice on error #2457RoleParser
does not definenone
,handshake
, andunknown
replica states #2482- StatefulRedisClusterPubSubConnectionImpl's activated() method will report exception after resubscribe() was call. #2534
💡 Other
- Improve Document on pingBeforeActivateConnection #2138
- Improve Document on dynamicRefreshSources #2139
- Fixes typo in ReadFrom #2213
- Fix duplicate word occurrences #2307
- Update netty.version to 4.1.89.Final #2311
- Avoid using port 7443 in Lettuce tests #2326
- Upgrade to Reactor 3.4.27 #2330
- Fix Set unit test sscanMultiple fail in redis7 #2349
- README.md demo has a error #2377
- Upgrade to Kotlin 1.7 #2392
- Upgrade to Netty 4.1.94.Final #2431
- Update SetArgs.java builder method param comment #2441
- Use enum for no-op
PauseDetectorWrapper
#2474 - Upgrade build to Redis 7.2 #2481
- Refine command outputs to capture whether a segment has been received instead of relying on the deserialized value state #2498
- Upgrade to Reactor 3.6.0 #2517
- Docs on metrics (wiki) are misleading #2538
- Upgrade to Micrometer 1.12.0 #2549
- Upgrade to netty 4.1.101.Final #2550
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
- @CodePlayer
- @DanielYWoo
- @Emibergo02
- @FatalEnigma
- @IlyaShatskikh
- @JunRzz
- @Leoncanva
- @PedroMPagani
- @SreedharReddyKallu
- @andre237
- @be-hase
- @coolbeevip
- @h-marvin
- @henry701
- @hkupty
- @huangmiao
- @jacob-pro
- @jeffreye
- @jiantosca
- @jruaux
- @karesti
- @kell0gg
- @koisyu
- @kotovdv
- @liyuntao
- @lorenzhawkes
- @lpellegr
- @luciopaiva
- @m-ibot
- @manzhizhen
- @mindas
- @oridool
- @oshai
- @rbowen
- @rstosick
- @sobhan-ssh
- @tadashiya
- @vijay-kota
- @yangbodong22011
- @ze
- @zhxjdwh
6.2.7.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.7.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.7.RELEASE/api/
⭐ New Features
- Add support for cluster-announced hostname #2487
- Add support for disconnect on timeout to recover early from no
RST
packet failures #2082
🐞 Bug Fixes
- StatefulRedisClusterPubSubConnectionImpl's activated() method will report exception after resubscribe() was call. #2534
💡 Other
- Refine command outputs to capture whether a segment has been received instead of relying on the deserialized value state #2498
- Docs on metrics (wiki) are misleading #2538
- Upgrade to netty 4.1.101.Final #2550
- Upgrade to Micrometer 1.9.17 #2551
- Release Lettuce 6.2.7 #2552
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.2.6.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.6.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.6.RELEASE/api/
⭐ New Features
- Add fallback to RESP2 upon
NOPROTO
response #2455 - Propagate initialization failures from
ChannelInitializer
#2475
🐞 Bug Fixes
CommandListener
notified twice on error #2457flushCommands
leads to random inbound command order when using large argument values with SSL #2456RoleParser
does not definenone
,handshake
, andunknown
replica states #2482
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.2.5.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.5.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.5.RELEASE/api/
⭐ New Features
- ReplicaTopologyProvider can't parse replicas from INFO #2375
- Support for module-based read-only commands #2401
- Accept Double and Boolean in
MapOutput
#2429 - Array lists with set capacities in SimpleBatcher #2445
🐞 Bug Fixes
- Reactive Cluster
MGET
is not running in parallel #2395 memory usage
command passes key asString
instead of using the codec #2424- Fix NPE when manually flushing a batch #2444
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.2.4.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.4.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.4.RELEASE/api/
⭐ New Features
- Add capability of FailOver with takeOver option #2358
- Improve
AdaptiveRefreshTriggeredEvent
to provide the cause and contextual details #2338 - Refine
RedisException
instantiation to avoid exception instances if they are not used #2353
🐞 Bug Fixes
- Fix long overflow in
RedisSubscription#potentiallyReadMore
#2383 - Consistently implement CompositeArgument in arg types #2387
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
6.2.3.RELEASE
📗 Links
- Reference documentation: https://lettuce.io/core/6.2.3.RELEASE/reference/
- Javadoc: https://lettuce.io/core/6.2.3.RELEASE/api/
🐞 Bug Fixes
- Fallback to RESP2 hides potential authentication configuration problems #2313
- Accept slots as String using
CLUSTER SHARDS
#2325 - Handle unknown endpoints in MOVED response #2290
RedisURI.applySsl(…)
does not retainSslVerifyMode
#2328- Apply
SslVerifyMode
inRedisURI.applySsl(…)
#2329
💡 Other
- Avoid using port 7443 in Lettuce tests #2326
- Update netty.version to 4.1.89.Final #2311
- Fix duplicate word occurrences #2307
❤️ Contributors
We'd like to thank all the contributors who worked on this release!