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
Links
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
Links
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.