Skip to content

Commit 30d8555

Browse files
committed
Prepare release/docs for 4.0.Beta2
1 parent 68f9884 commit 30d8555

File tree

2 files changed

+77
-15
lines changed

2 files changed

+77
-15
lines changed

README.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
lettuce - Advanced and thread-safe Java Redis client
1+
lettuce - Java Redis client
22
====================================================
33

44
[![Build Status](https://travis-ci.org/mp911de/lettuce.svg)](https://travis-ci.org/mp911de/lettuce) [![Coverage Status](https://img.shields.io/coveralls/mp911de/lettuce.svg)](https://coveralls.io/r/mp911de/lettuce) [![Maven Central](https://maven-badges.herokuapp.com/maven-central/biz.paluch.redis/lettuce/badge.svg)](https://maven-badges.herokuapp.com/maven-central/biz.paluch.redis/lettuce)
55

6-
Lettuce is a scalable thread-safe Redis client suited for synchronous,
6+
Lettuce is a scalable thread-safe Redis client for synchronous,
77
asynchronous and reactive usage. Multiple threads may share one connection if they avoid blocking and transactional
88
operations such as `BLPOP` and `MULTI`/`EXEC`.
99
lettuce is built with [netty](https://github.com/netty/netty).
10-
Supports advanced Redis features such as Sentinel, Cluster, Pipelining and Redis data models.
10+
Supports advanced Redis features such as Sentinel, Cluster, Pipelining, Auto-Reconnect and Redis data models.
1111

1212
This version of lettuce has been tested against Redis and 3.0.
1313

@@ -23,7 +23,6 @@ This version of lettuce has been tested against Redis and 3.0.
2323

2424
See the [Wiki](https://github.com/mp911de/lettuce/wiki) for more docs.
2525

26-
I'm developing and maintaining actively the fork of https://github/wg/lettuce
2726

2827
Communication
2928
---------------

RELEASE-NOTES.md

Lines changed: 74 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
1-
lettuce 4.0.Beta1 RELEASE NOTES
1+
# lettuce 4.0.Beta2 RELEASE NOTES
22

33
This release is a major release that introduces numerous changes like stateful connections,
44
the reactive API and many more. Lettuce 4.0 includes all features from lettuce 3.3.
55

6+
**Highlights of lettuce 4.0.Beta2**
7+
8+
* Reactive API
9+
* Stateful connections
10+
* Cross-slot command execution
11+
* Node Selection API/Execution of commands on multiple cluster nodes
12+
* ReadFrom Settings/Redis Cluster slave reads
13+
* Custom commands
14+
615
This release contains some breaking changes. You may want to consult the
716
wiki at https://github.com/mp911de/lettuce/wiki/Migration-from-3.x-to-4.x
817
to check the migration guide.
@@ -56,7 +65,8 @@ Rearchitecting the API
5665
-----
5766
Before 4.0, connection resources (sockets, events) were bound to the particular API.
5867
If one wanted to use a different API, he had to create another connection to Redis.
59-
This coupling is loosed now. By calling `connect()` you will no longer get a synchronous connection, you will get a `StatefulRedisConnection`
68+
This coupling is loosed now. By calling `connect()` you will no longer get a synchronous connection,
69+
you will get a `StatefulRedisConnection`
6070
with the access to the synchronous, asynchronous and reactive API.
6171
All commands are executed using netty and it does not matter, from which API you come.
6272

@@ -205,6 +215,27 @@ This API is a technical preview, so your feedback is highly appreciated.
205215

206216
Read more: https://github.com/mp911de/lettuce/wiki/Redis-Cluster-(4.0)
207217

218+
219+
ReadFrom Settings/Redis Cluster slave reads
220+
-------------------------------------------
221+
The `ReadFrom` setting describes how lettuce routes read operations to the members of a Redis Cluster.
222+
223+
By default, lettuce routes its read operations to the master node. Reading from the master returns the most recent
224+
version of the data because write operations are issued to the single master node. Reading from
225+
masters guarantees strong consistency.
226+
227+
The `ReadFrom` setting can be set to one of the following presets:
228+
229+
* `MASTER` Default mode. Read from the current master node.
230+
* `MASTER_PREFERRED` Read from the master, but if it is unavailable, read from slave nodes.
231+
* `SLAVE` Read from slave nodes.
232+
* `NEAREST` Read from any node of the cluster with the lowest latency.
233+
234+
Custom read settings can be implemented by extending the `com.lambdaworks.redis.ReadFrom` class.
235+
236+
Read more: https://github.com/mp911de/lettuce/wiki/ReadFrom-Settings
237+
238+
208239
Custom commands
209240
---------------
210241
Lettuce covers nearly all Redis commands. Redis development is an ongoing process,
@@ -228,37 +259,69 @@ connection.dispatch(async);
228259

229260
Read more: https://github.com/mp911de/lettuce/wiki/Custom-commands%2C-outputs-and-command-mechanics
230261

262+
Codec API improvements
263+
----------------------
264+
The RedisCodec API was aligned to a consistent interchange type and migrated to an interface.
265+
The RedisCodec interface accepts and returns `ByteBuffer` for data interchange. A `ByteBuffer is not `
266+
opinionated about the source of the underlying bytes and such it does not require users to duplicate existing
267+
data as it was enforced by a `byte[]`. Lettuce provides `UTF-8` and `byte[]` codecs and allows users to
268+
create and use their own codecs. XML, JSON and Java-serialization are good examples for codecs.
269+
270+
This release also brings a value compressor which allows you to compress values using GZIP or Deflate
271+
compressions. Value compression is transparent and can be used with any codec.
272+
273+
```java
274+
RedisCommands<String, Object> connection = client.connect(
275+
CompressionCodec.valueCompressor(new SerializedObjectCodec(), CompressionCodec.CompressionType.GZIP)).sync();
276+
277+
RedisCommands<String, String> connection = client.connect(
278+
CompressionCodec.valueCompressor(new Utf8StringCodec(), CompressionCodec.CompressionType.DEFLATE)).sync();
279+
```
280+
281+
282+
Read more: https://github.com/mp911de/lettuce/wiki/Codecs-%284.x%29
283+
231284

232285
Updated dependencies
233286
--------------------
234-
* rxjava 1.0.13 (new)
287+
* rxjava 1.0.14 (new)
235288
* Google Guava 17.0 -> 18.0
236289
* netty 4.0.28.Final 4.0.30.Final
237290
* commons-pool2 2.2 -> 2.4.2
238291

239292

240293
Enhancements
241294
------------
242-
* Advanced Cluster API (async) #78
243-
* Implement synchronous multi-node execution API enhancement #129
244-
* Improve HLL command interface #77
245-
* Move segregated API interfaces to own packages #76
246-
* Provide a stateful Redis connection and decouple sync/async API from connection resources #75
247-
* Reactive support #68
248-
* Pipelining for certain cluster commands #66
249-
* Drop support for Java 6 and Java 7 #50
250295
* Migrate RedisFuture to CompletionStage #48
296+
* Drop support for Java 6 and Java 7 #50
297+
* Pipelining for certain cluster commands #66
298+
* Reactive support #68
299+
* Provide a stateful Redis connection and decouple sync/async API from connection resources #75
300+
* Move segregated API interfaces to own packages #76
301+
* Improve HLL command interface #77
302+
* Advanced Cluster API (async) #78
303+
* Provide a sync API for Redis Sentinel #79
304+
* Remove Java 6/7 parts of JavaRuntime and use netty's SslContextBuilder #85
305+
* Support geo commands in lettuce 4.0 #87
306+
* Run certain commands from the advanced cluster connection on multiple hosts #106
251307
* Allow limiting the request queue size #115
252308
* Improve Codec API #118
253309
* Allow to read from master/slave/nearest node when using Redis Cluster #114
254310
* Documentation of custom commands #122
311+
* Implement a CompressionCodec for GZIP and Deflate compression #127
312+
* Implement synchronous multi-node execution API #129
255313

256314
Fixes
257315
-----
316+
* CI: Build ran into OutOfMemoryError: Java heap space #84
317+
* Use Sucess instead of Void in the reactive API #128
258318

259319
Other
260320
------
321+
* Documentation for 4.0 #83
322+
* Improve performance in 4.0 #91
261323
* Update Dependencies for lettuce 4.0 #116
324+
* Documentation of custom commands #122
262325

263326

264327
lettuce requires a minimum of Java 8 to build and run. It is tested continuously against the latest Redis source-build.

0 commit comments

Comments
 (0)