Releases: redis/lettuce
6.4.0.RELEASE
⭐ New Features
- Implement
HPEXPIRE,HPEXPIREAT,HPEXPIRETIME,HTTLand HPTTL` (#2857) - Implement
HEXPIRE,HEXPIREAT,HEXPIRETIMEandHPERSIST(#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
evalReadOnlyoverload that accepts the script as aString(#2868) XREADsupport for reading last message from stream (#2863)- Send the
CLIENT SETINFOcommand in a fire-and-forget way (#2823) - Add support
CLIENT KILL [MAXAGE](#2782) - Support
HSCANwithNOVALUESargument (#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
SPUBLISHby @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
evalReadOnlyoverload that accepts the script as aStringby @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
ConcurrentLinkedQueueto avoid expensivesizecalls #2602 - Use
HashedWheelTimerfor 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
RedisVersionparser 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
WITHSCOREoption toZRANKandZREVRANKcommands #2410 - Add support for
CLIENT SETINFO,CLIENT INFO, and enhancedCLIENT LIST#2439 ZMPOPandBZMPOPcommands #2435- Support
FCALLcommands 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
RSTpacket failures #2082 - Avoid buffer copies in
RedisStateMachine#2173 - Make SlotHash utility methods public #2199
- Improve
AdaptiveRefreshTriggeredEventto provide the cause and contextual details #2338 - Refine
RedisExceptioninstantiation 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
NOPROTOresponse #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
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
- Own
RedisCredentialsProvidercauses 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
SslVerifyModeinRedisURI.applySsl(…)#2329 - Fix long overflow in
RedisSubscription#potentiallyReadMore#2383 - Consistently implement CompositeArgument in arg types #2387
- Reactive Cluster
MGETis not running in parallel #2395 - Polish RedisObservation name & javadoc #2404
memory usagecommand passes key asStringinstead of using the codec #2424- Fix NPE when manually flushing a batch #2444
flushCommandsleads to random inbound command order when using large argument values with SSL #2456CommandListenernotified twice on error #2457RoleParserdoes not definenone,handshake, andunknownreplica 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
RSTpacket 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
NOPROTOresponse #2455 - Propagate initialization failures from
ChannelInitializer#2475
🐞 Bug Fixes
CommandListenernotified twice on error #2457flushCommandsleads to random inbound command order when using large argument values with SSL #2456RoleParserdoes not definenone,handshake, andunknownreplica states #2482
💡 Other
❤️ Contributors
We'd like to thank all the contributors who worked on this release!
- @jruaux
- @lpellegr
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
MGETis not running in parallel #2395 memory usagecommand passes key asStringinstead 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
AdaptiveRefreshTriggeredEventto provide the cause and contextual details #2338 - Refine
RedisExceptioninstantiation 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
SslVerifyModeinRedisURI.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!