New & Noteworthy¶
What's new in Lettuce 7.8¶
- Deprecated the server-assisted client-side caching support (
ClientSideCaching,CacheFrontend,CacheAccessor,RedisCacheinio.lettuce.core.support.caching). This implementation is legacy and incomplete and is scheduled for removal in a future major release. There is no replacement yet — a redesigned client-side caching API is planned. - Fixed
ScriptOutputType.OBJECTdecoding so top-level scalar responses are returned directly instead of being treated as collections. Top-level integer responses now returnLonginstead of a one-elementList<Long>; RESP arrays remain lists. - Fixed
XAUTOCLAIMreply decoding for pending entries that were deleted from the stream (the third reply element added in Redis 7.0). WithJUSTID, those deleted IDs are no longer misreported as claimed messages throughClaimedMessages.getMessages(); they are now exposed through the newClaimedMessages.getDeletedIds(), which returns an empty list on Redis before 7.0.
What's new in Lettuce 7.7¶
- Probabilistic data structures (RedisBloom) support through
RedisBloomFilterCommands,RedisCuckooFilterCommands,RedisTopKCommands,RedisCMSCommandsandRedisTDigestCommands, with the respective async, reactive and Kotlin APIs — covering Bloom Filter (BF.*), Cuckoo Filter (CF.*), Top-K, Count-Min Sketch and T-Digest - Support for the
HIMPORTcommand family for bulk-loading hashes that share the same field names, declaring the field names once per connection and sending only values per hash — see Hash Import - Support for the
SUNIONCARDandSDIFFCARDset cardinality commands - Support for the
LMOVEMandBLMOVEMmulti-element list move commands - Support for the
MAXCOUNTandMAXSIZEoptions onXREADandXREADGROUP - Support for
FT.ALIASLISTto list search index aliases - Support for the
VISMEMBERVector Set command — see Redis Vector Sets - Support for
CLIENT NO-TOUCHto control key access-time updates per connection
What's new in Lettuce 7.2¶
- Support for
FT.HYBRIDcommand enabling hybrid vector and full-text search queries - Ability to expose upstream driver libraries in
CLIENT SETINFOpayload for better client identification
What's new in Lettuce 7.1¶
- Support for
XREADGROUPwithCLAIMargument for atomic message claiming in Redis Streams consumer groups - Compare-and-Set (CAS) / Compare-and-Delete (CAD) commands through
DIGEST,DELEXandSETextensions for optimistic locking patterns - Support for
MSETEXcommand to atomically set multiple keys with expiration
What's new in Lettuce 7.0¶
- Maintenance events support for graceful handling of Redis maintenance operations enabling hitless upgrades
- Upgrade to Netty 4.2 with adaptive memory allocator and improved threading model
- RediSearch cluster mode support with cursor sticking and read operation distribution across nodes
- String-based JSON API to avoid unnecessary byte-to-string conversions
- Removal of deprecated APIs as part of major version cleanup
What’s new in Lettuce 6.8¶
- RediSearch support through
RediSearchCommandsand the respective reactive, async and Kotlin APIs
What’s new in Lettuce 6.7¶
- VectorSet support through
RedisVectorSetCommandsand the respective reactive, async and Kotlin APIs ConnectionPoolSupportalso allows the user to provide custom connection validations
What’s new in Lettuce 6.6¶
- Support
HGETDEL,HGETEXandHSETEX - Introduce command replay filter to avoid command replaying after reconnect
- Deprecate the STRALGO command and implement the LCS in its place
- Token based authentication integration with core extension
What’s new in Lettuce 6.5¶
- RedisJSON support through
RedisJSONCommandsand the respective reactive, async and Kotlin APIs - Complete support for all
CLUSTERcommands (addedCLUSTER MYSHARDIDandCLUSTER LINKS) - Added support for the
CLIENT TRACKINGcommand - Migrated the documentation to MkDocs
What’s new in Lettuce 6.4¶
- Hash Field Expiration is now fully supported
- Sharded Pub/Sub is now fully supported
- Support
CLIENT KILLwith[MAXAGE]parameter andHSCANwithNOVALUESparameter
What’s new in Lettuce 6.3¶
-
Redis Function support (
fcallandFUNCTIONcommands). -
Support for Library Name and Version through
LettuceVersion. Automated registration of the Lettuce library version upon connection handshake. -
Support for Micrometer Tracing to trace observations (distributed tracing and metrics).
What’s new in Lettuce 6.2¶
-
RedisCredentialsProviderabstraction to externalize credentials and credentials rotation. -
Retrieval of Redis Cluster node connections using
ConnectionIntentto obtain read-only connections. -
Master/Replica now uses
SENTINEL REPLICASto discover replicas instead ofSENTINEL SLAVES.
What’s new in Lettuce 6.1¶
-
Kotlin Coroutines support for
SCAN/HSCAN/SSCAN/ZSCANthroughScanFlow. -
Command Listener API through
RedisClient.addListener(CommandListener). -
Micrometer support through
MicrometerCommandLatencyRecorder. -
Configuration of extended Keep-Alive options through
KeepAliveOptions(only available for some transports/Java versions). -
Configuration of netty's
AddressResolverGroupthroughClientResources. UsesDnsAddressResolverGroupwhennetty-resolver-dnsis on the classpath. -
Add support for Redis ACL commands.
What’s new in Lettuce 6.0¶
-
Support for RESP3 usage with Redis 6 along with RESP2/RESP3 handshake and protocol version discovery.
-
ACL authentication using username and password or password-only authentication.
-
Cluster topology refresh is now non-blocking.
-
RxJava 3 support.
-
Refined Scripting API accepting the Lua script either as
byte[]orString. -
Connection and Queue failures now no longer throw an exception but properly associate the failure with the Future handle.
-
Removal of deprecated API including timeout methods accepting
TimeUnit. Use methods acceptingDurationinstead. -
Lots of internal refinements.
-
xpendingmethods return nowList<PendingMessage>andPendingMessages -
Spring support removed. Use Spring Data Redis for a seamless Spring integration with Lettuce.
-
AsyncConnectionPoolSupport.createBoundedObjectPool(…)methods are now blocking to await pool initialization. -
DecodeBufferPolicyfor fine-grained memory reclaim control. -
RedisURI.toString()renders masked password. -
ClientResources.commandLatencyCollector(…)refactored intoClientResources.commandLatencyRecorder(…)returningCommandLatencyRecorder.
What’s new in Lettuce 5.3¶
-
Improved SSL configuration supporting Cipher suite selection and PEM-encoded certificates.
-
Fixed method signature for
randomkey(). -
Un-deprecated
ClientOptions.pingBeforeActivateConnectionto allow connection verification during connection handshake.
What’s new in Lettuce 5.2¶
-
Allow randomization of read candidates using Redis Cluster.
-
SSL support for Redis Sentinel.
What’s new in Lettuce 5.1¶
-
Add support for
ZPOPMIN,ZPOPMAX,BZPOPMIN,BZPOPMAXcommands. -
Add support for Redis Command Tracing through Brave, see Configuring Client resources.
-
Add support for Redis Streams.
-
Asynchronous
connect()for Master/Replica connections. -
Asynchronous Connection Pooling through
AsyncConnectionPoolSupportandAsyncPool. -
Dedicated exceptions for Redis
LOADING,BUSY, andNOSCRIPTresponses. -
Commands in at-most-once mode (auto-reconnect disabled) are now canceled already on disconnect.
-
Global command timeouts (also for reactive and asynchronous API usage) configurable through Client Options.
-
Host and port mappers for Lettuce usage behind connection tunnels/proxies through
SocketAddressResolver, see Configuring Client resources. -
SCRIPT LOADdispatch to all cluster nodes when issued throughRedisAdvancedClusterCommands. -
Reactive
ScanStreamto iterate over the keyspace usingSCANcommands. -
Transactions using Master/Replica connections are bound to the master node.
What’s new in Lettuce 5.0¶
-
New artifact coordinates:
io.lettuce:lettuce-coreand packages moved fromcom.lambdaworks.redistoio.lettuce.core. -
Reactive API now Reactive Streams-based using Project Reactor.
-
Redis Command Interfaces supporting dynamic command invocation and Redis Modules.
-
Enhanced, immutable Key-Value objects.
-
Asynchronous Cluster connect.
-
Native transport support for Kqueue on macOS systems.
-
Removal of support for Guava.
-
Removal of deprecated
RedisConnectionandRedisAsyncConnectioninterfaces. -
Java 9 compatibility.
-
HTML and PDF reference documentation along with a new project website: https://lettuce.io.