Redis Client lettuce 3.4 and 4.1 Final released

I just released lettuce 3.4.Final and lettuce 4.1.Final. You can find the full details about 3.4.Final and 4.1.Final on Github.

These release contain numerous features and bugfixes. Lettuce introduces reusable client-resources, an EventBus, client metrics, and support for newly introduced commands. This versions work with Redis 3.2 RC3 but Redis expects a change in the format of CLUSTER NODES. So watch out for a new release of lettuce as soon as Redis 3.2 RC4 or a final is released.

lettuce is available in two major versions. The 3.x stream and the 4.x stream. Both streams are maintained.
The 4.x stream introduced breaking changes, as a user of 3.x you might be interested in the migration guide from 3.x to 4.x. See https://github.com/mp911de/lettuce/wiki/Migration-from-3.x-to-4.x

After this release, the 4.x branch will be promoted to the default branch.
Following rules should give a guidance for the stream in which a particular change is done:

Changes affecting both streams

  • New Redis commands (such as HSTRLEN)
  • Bugfixes

Changes for the 4.x stream only

  • New Redis paradigms
  • Enriching the API (such as multi-key command execution in the Cluster API)
  • Technical improvements to the client (such as the Reactive API)

The 3.x stream will be maintained at least until end of 2016.

Changes for lettuce 3.4.Final

JavaDoc: http://redis.paluch.biz/docs/api/releases/3.4.Final/

Updated dependencies

netty 4.0.28.Final -> 4.0.34.Final

Enhancements

  • Support CLUSTER SETSLOT STABLE command #160
  • Support FLUSHALL [ASYNC]/FLUSHDB [ASYNC]/UNLINK commands #146
  • Adjust logging when running into Exceptions (exceptionCaught()) #140
  • Implement an EventBus system to publish events and metrics #124 (Thanks to @pulse00)
  • Implement a CompressionCodec for GZIP and Deflate compression #127
  • Provide a reusable client configuration for ThreadPools and other expensive resources #110
  • Use much faster JDK utility for converting an int to a byte sequence #163 (Thanks to @CodingFabian)
  • Cluster ReadFrom #114
  • Allow limiting the request queue size #115
  • Extend support for CLUSTER commands #111
  • Dispatch CLUSTER commands based on the slot #112
  • Support changed CLUSTER SLOTS #183

Fixes

  • Do not cache InetSocketAddress/SocketAddress in RedisURI #144
  • pfmerge invokes PFADD instead of PFMERGE #158 (Thanks to @christophstrobl)
  • Fix set with args method signature #159 (Thanks to @joshdurbin)
  • fix NOAUTH error when connecting to a cluster with password protection #171 (Thanks to @liufl)
  • Enable PING before connect with secured Redis servers #167
  • Include BaseRedis interface in synchronous RedisCluster API #166
  • Allow state-changing commands on pooled connections #162
  • NullPointer with bad cluster node list #173 (Thanks to @taer)
  • Avoid infinite reconnect loops when the connection is closed #126

Other

  • Improve Redis URI documentation and query parameter handling #153
  • Added configurable timeout to connection string #152
  • Update netty to 4.0.34.Final #186

Changes for lettuce 4.1.Final

JavaDoc: http://redis.paluch.biz/docs/api/releases/4.1.Final/

Updated dependencies

netty 4.0.30.Final -> 4.0.34.Final

Enhancements

  • Support CLUSTER SETSLOT STABLE command #160
  • Support FLUSHALL [ASYNC]/FLUSHDB [ASYNC]/UNLINK commands #146
  • Support DEBUG RESTART/CRASH-AND-RECOVER [delay] commands #145
  • Adjust logging when running into Exceptions (exceptionCaught()) #140
  • Implement an EventBus system to publish events and metrics #124 (Thanks to @pulse00)
  • ClientResources and EventBus for 4.1 enhancement #137
  • Provide a reusable client configuration for ThreadPools and other expensive resources #110
  • Allow control over behavior in disconnected state #121
  • Use much faster JDK utility for converting an int to a byte sequence #163 (Thanks to @CodingFabian)
  • Extend support for CLUSTER commands #111
  • Dispatch CLUSTER commands based on the slot #112
  • Enable initial support for read from slaves in Master-Slave setups #125
  • Support changed CLUSTER SLOTS #183

Fixes

  • Do not cache InetSocketAddress/SocketAddress in RedisURI #144
  • Cluster API does not implement the Geo commands interface #154 (Thanks to @IdanFridman)
  • pfmerge invokes PFADD instead of PFMERGE #158 (Thanks to @christophstrobl)
  • Fix set with args method signature #159 (Thanks to @joshdurbin)
  • fix NOAUTH error when connecting to a cluster with password protection #171 (Thanks to @liufl)
  • Enable PING before connect with secured Redis servers #167
  • Perform multiple connection attempts when connecting a Redis Cluster #164
  • Include BaseRedis interface in synchronous RedisCluster API #166
  • Allow state-changing commands on pooled connections #162
  • Fix return type description in JavaDoc of the reactive API #185 (Thanks to @HaloFour)

Other

  • Improve Redis URI documentation and query parameter handling #153
  • Added configurable timeout to connection string #152
  • Update netty to 4.0.34.Final #186

Maven coordinates:

3.4.Final

<dependency>
    <groupId>biz.paluch.redis</groupId>
    <artifactId>lettuce</artifactId>
    <version>3.4.Final</version>
</dependency>

<dependency>
    <groupId>biz.paluch.redis</groupId>
    <artifactId>lettuce</artifactId>
    <version>3.4.Final</version>
    <classifier>shaded</classifier>
</dependency>

4.1.Final

<dependency>
    <groupId>biz.paluch.redis</groupId>
    <artifactId>lettuce</artifactId>
    <version>4.1.Final</version>
</dependency>

<dependency>
    <groupId>biz.paluch.redis</groupId>
    <artifactId>lettuce</artifactId>
    <version>4.1.Final</version>
    <classifier>shaded</classifier>
</dependency>

Any feedback is appreciated or file an issue on GitHub.

You may also enjoy…