Skip to content

New & Noteworthy

What's new in Lettuce 7.8

  • Deprecated the server-assisted client-side caching support (ClientSideCaching, CacheFrontend, CacheAccessor, RedisCache in io.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.OBJECT decoding so top-level scalar responses are returned directly instead of being treated as collections. Top-level integer responses now return Long instead of a one-element List<Long>; RESP arrays remain lists.
  • Fixed XAUTOCLAIM reply decoding for pending entries that were deleted from the stream (the third reply element added in Redis 7.0). With JUSTID, those deleted IDs are no longer misreported as claimed messages through ClaimedMessages.getMessages(); they are now exposed through the new ClaimedMessages.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, RedisCMSCommands and RedisTDigestCommands, 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 HIMPORT command 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 SUNIONCARD and SDIFFCARD set cardinality commands
  • Support for the LMOVEM and BLMOVEM multi-element list move commands
  • Support for the MAXCOUNT and MAXSIZE options on XREAD and XREADGROUP
  • Support for FT.ALIASLIST to list search index aliases
  • Support for the VISMEMBER Vector Set command — see Redis Vector Sets
  • Support for CLIENT NO-TOUCH to control key access-time updates per connection

What's new in Lettuce 7.2

  • Support for FT.HYBRID command enabling hybrid vector and full-text search queries
  • Ability to expose upstream driver libraries in CLIENT SETINFO payload for better client identification

What's new in Lettuce 7.1

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 RediSearchCommands and the respective reactive, async and Kotlin APIs

What’s new in Lettuce 6.7

  • VectorSet support through RedisVectorSetCommands and the respective reactive, async and Kotlin APIs
  • ConnectionPoolSupport also allows the user to provide custom connection validations

What’s new in Lettuce 6.6

  • Support HGETDEL, HGETEX and HSETEX
  • 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 RedisJSONCommands and the respective reactive, async and Kotlin APIs
  • Complete support for all CLUSTER commands (added CLUSTER MYSHARDID and CLUSTER LINKS)
  • Added support for the CLIENT TRACKING command
  • Migrated the documentation to MkDocs

What’s new in Lettuce 6.4

What’s new in Lettuce 6.3

  • Redis Function support (fcall and FUNCTION commands).

  • 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

  • RedisCredentialsProvider abstraction to externalize credentials and credentials rotation.

  • Retrieval of Redis Cluster node connections using ConnectionIntent to obtain read-only connections.

  • Master/Replica now uses SENTINEL REPLICAS to discover replicas instead of SENTINEL SLAVES.

What’s new in Lettuce 6.1

  • Kotlin Coroutines support for SCAN/HSCAN/SSCAN/ZSCAN through ScanFlow.

  • Command Listener API through RedisClient.addListener(CommandListener).

  • Micrometer support through MicrometerCommandLatencyRecorder.

  • Experimental support for io_uring.

  • Configuration of extended Keep-Alive options through KeepAliveOptions (only available for some transports/Java versions).

  • Configuration of netty's AddressResolverGroup through ClientResources. Uses DnsAddressResolverGroup when netty-resolver-dns is on the classpath.

  • Add support for Redis ACL commands.

  • Java Flight Recorder Events

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.

  • Kotlin Coroutine Extensions.

  • RxJava 3 support.

  • Refined Scripting API accepting the Lua script either as byte[] or String.

  • 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 accepting Duration instead.

  • Lots of internal refinements.

  • xpending methods return now List<PendingMessage> and PendingMessages

  • Spring support removed. Use Spring Data Redis for a seamless Spring integration with Lettuce.

  • AsyncConnectionPoolSupport.createBoundedObjectPool(…) methods are now blocking to await pool initialization.

  • DecodeBufferPolicy for fine-grained memory reclaim control.

  • RedisURI.toString() renders masked password.

  • ClientResources.commandLatencyCollector(…) refactored into ClientResources.commandLatencyRecorder(…) returning CommandLatencyRecorder.

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.pingBeforeActivateConnection to 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, BZPOPMAX commands.

  • 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 AsyncConnectionPoolSupport and AsyncPool.

  • Dedicated exceptions for Redis LOADING, BUSY, and NOSCRIPT responses.

  • 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 LOAD dispatch to all cluster nodes when issued through RedisAdvancedClusterCommands.

  • Reactive ScanStream to iterate over the keyspace using SCAN commands.

  • Transactions using Master/Replica connections are bound to the master node.

What’s new in Lettuce 5.0

  • New artifact coordinates: io.lettuce:lettuce-core and packages moved from com.lambdaworks.redis to io.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 RedisConnection and RedisAsyncConnection interfaces.

  • Java 9 compatibility.

  • HTML and PDF reference documentation along with a new project website: https://lettuce.io.