-
Notifications
You must be signed in to change notification settings - Fork 992
Streaming API
Redis can contain a huge set of data. Collections can burst your memory, when the amount of data is too massive for your heap.
Lettuce can return your collection data either as List/Set/Map or can push the data on StreamingChannel
interfaces.
StreamingChannel
s are similar to callback methods. Every method, which can return bulk data (except transactions/multi and some config methods) specifies beside a regular method with a collection return class also method which accepts a StreamingChannel
. Lettuce interacts with a StreamingChannel
as the data arrives so data can be processed while the command is running and is not yet completed.
There are 4 StreamingChannels accepting different data types:
The result of the steaming methods is the count of keys/values/key-value pairs as long
value.
Long count = redis.hgetall(new KeyValueStreamingChannel<String, String>()
{
@Override
public void onKeyValue(String key, String value)
{
...
}
}, key);
Streaming happens real-time to the redis responses. The method call (future) completes after the last call to the StreamingChannel.
ValueStreamingChannel using a list
redis.lpush("key", "one")
redis.lpush("key", "two")
redis.lpush("key", "three")
Long count = redis.lrange(new ValueStreamingChannel<String, String>()
{
@Override
public void onValue(String value)
{
System.out.println("Value: " + value);
}
}, "key", 0, -1);
System.out.println("Count: " + count);
will produce following output:
Value: one Value: two Value: three Count: 3
Lettuce documentation was moved to https://redis.github.io/lettuce/overview/
Intro
Getting started
- Getting started
- Redis URI and connection details
- Basic usage
- Asynchronous API
- Reactive API
- Publish/Subscribe
- Transactions/Multi
- Scripting and Functions
- Redis Command Interfaces
- FAQ
HA and Sharding
Advanced usage
- Configuring Client resources
- Client Options
- Dynamic Command Interfaces
- SSL Connections
- Native Transports
- Unix Domain Sockets
- Streaming API
- Events
- Command Latency Metrics
- Tracing
- Stateful Connections
- Pipelining/Flushing
- Connection Pooling
- Graal Native Image
- Custom commands
Integration and Extension
Internals