Mark Paluch

Redis Client lettuce 3.3.Beta1 and 4.0.Beta1 released

I released today two betas of lettuce: 3.3.Beta1 and 4.0.Beta1. What is the difference between those versions? Both use netty and a very similar core to serve as Redis driver. The 4.0 branch introduces a Reactive API, stateful connections, improved API and command execution on multiple cluster nodes. 4.0 also introduces a set of breaking changes. The 3.x branch is supported for at least a year, new Redis commands will be supported in both branches. 4.0 is the next generation of lettuce.

You can find the details of both releases on Github, here’s the short version:

lettuce 3.3.Beta1

Enhancements

  • Provide access to cluster connection using the advanced cluster API #71

  • Cluster connection failover when cluster topology changes #97

  • NodeId-bound cluster connections enhancement #104

  • Implement at-least-once for cluster connections #105

  • Pipelining for lettuce (or: flush after n commands) #92

  • Decouple ConnectionWatchdog reconnect from timer thread #100

  • Improve performance in 3.3 #90

  • Add checks for arguments #69

  • Use dedicated string codecs on String connections and add ByteArrayCodec #70

  • Tests for command reliability docs #98

  • Expose RedisClient.connect(RedisCodec, RedisURI) and RedisClient.connectAsync(RedisCodec, RedisURI) #108

  • Add close stale connections and strict cluster member check flags to ClusterClientOptions #109

Commands

  • Adopt variadic EXISTS and DEBUG HTSTATS #103

  • Support geo commands in lettuce 3.3 #86

  • Support NX|XX|CH|INCR options in ZADD #74

  • Add support for COUNTKEYSINSLOT #107

Fixes

  • Synchronization/cross thread visibility of variables #94

  • Check channel state before calling Channel.close.syncUninterruptibly #113

Other

  • Rework of the wiki

Maven coordinates:

<dependency>
    <groupId>biz.paluch.redis</groupId>
    <artifactId>lettuce</artifactId>
    <version>3.3.Beta1</version>
</dependency>

lettuce 4.0.Beta1

Enhancements

  • Advanced Cluster API (async) #78

  • Improve HLL command interface #77

  • Move segregated API interfaces to own packages #76

  • Provide a stateful Redis connection and decouple sync/async API from connection resources #75

  • Reactive support #68

  • Pipelining for certain cluster commands #66

  • Drop support for Java 6 and Java 7 #50

  • Migrate RedisFuture to CompletionStage #48

Maven coordinates:

<dependency>
    <groupId>biz.paluch.redis</groupId>
    <artifactId>lettuce</artifactId>
    <version>4.0.Beta1</version>
</dependency>

Any feedback is appreciated or create issues on GitHub.