-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Pub Sub
lettuce provides support for Publish/Subscribe on Redis Standalone and Redis Cluster connections. The connection is notified on message/subscribed/unsubscribed events after subscribing to channels or patterns. Synchronous, asynchronous and reactive API’s are provided to interact with Redis Publish/Subscribe features.
A connection can notify multiple listeners that implement
RedisPubSubListener (lettuce provides a RedisPubSubAdapter for
convenience). All listener registrations are kept within the
StatefulRedisPubSubConnection/StatefulRedisClusterConnection.
StatefulRedisPubSubConnection<String, String> connection = client.connectPubSub()
connection.addListener(new RedisPubSubListener<String, String>() { ... })
RedisPubSubCommands<String, String> sync = connection.sync();
sync.subscribe("channel");
// application flow continuesStatefulRedisPubSubConnection<String, String> connection = client.connectPubSub()
connection.addListener(new RedisPubSubListener<String, String>() { ... })
RedisPubSubAsyncCommands<String, String> async = connection.async();
RedisFuture<Void> future = async.subscribe("channel");
// application flow continuesThe reactive API provides hot Observables to listen on
ChannelMessages and PatternMessages. The Observables receive all
inbound messages. You can do filtering using the observable chain if you
need to filter out the interesting ones, The Observable stops
triggering events when the subscriber unsubscribes from it.
StatefulRedisPubSubConnection<String, String> connection = client.connectPubSub()
RedisPubSubReactiveCommands<String, String> reactive = connection.reactive();
reactive.subscribe("channel").subscribe();
reactive.observeChannels().doOnNext(patternMessage -> {...}).subscribe()
// application flow continuesStatefulRedisClusterConnection<String, String> connection = clusterClient.connectPubSub()
connection.addListener(new RedisPubSubListener<String, String>() { ... })
RedisPubSubCommands<String, String> sync = connection.sync();
sync.subscribe("channel");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