public interface StatefulRedisClusterPubSubConnection<K,V> extends StatefulRedisPubSubConnection<K,V>
This connection allows publishing and subscription to Pub/Sub messages within a Redis Cluster. Due to Redis Cluster's nature, messages are broadcasted across the cluster and a client can connect to any arbitrary node to participate with a subscription.
StatefulRedisClusterPubSubConnectionconnection = clusterClient.connectPubSub(); connection.addListener(…); RedisClusterPubSubCommands sync = connection.sync(); sync.subscribe("channel"); sync.publish("channel", "message");
StatefulRedisClusterPubSubConnection
allows node-specific subscriptions and message
propagation
. setNodeMessagePropagation(boolean)
can notify a RedisPubSubListener
that requires a single registration
with this connection
. Node-subscriptions are supported on
connection
and NodeSelection
levels through
asynchronous
, synchronous
, and reactive
APIs.
StatefulRedisClusterPubSubConnection connection = clusterClient.connectPubSub();
connection.addListener(…);
RedisClusterPubSubCommands sync = connection.sync();
sync.slaves().commands().psubscribe("__key*__:*");
Modifier and Type | Method and Description |
---|---|
void |
addListener(RedisClusterPubSubListener<K,V> listener)
Add a new
listener . |
RedisClusterPubSubAsyncCommands<K,V> |
async()
Returns the
RedisClusterPubSubAsyncCommands API for the current connection. |
StatefulRedisPubSubConnection<K,V> |
getConnection(String nodeId)
Retrieve a connection to the specified cluster node using the nodeId.
|
StatefulRedisPubSubConnection<K,V> |
getConnection(String host,
int port)
Retrieve a connection to the specified cluster node using host and port.
|
CompletableFuture<StatefulRedisPubSubConnection<K,V>> |
getConnectionAsync(String nodeId)
Retrieve asynchronously a connection to the specified cluster node using the nodeId.
|
CompletableFuture<StatefulRedisPubSubConnection<K,V>> |
getConnectionAsync(String host,
int port)
Retrieve a connection to the specified cluster node using host and port.
|
Partitions |
getPartitions() |
RedisClusterPubSubReactiveCommands<K,V> |
reactive()
Returns the
RedisClusterPubSubReactiveCommands API for the current connection. |
void |
removeListener(RedisClusterPubSubListener<K,V> listener)
Remove an existing
listener . |
void |
setNodeMessagePropagation(boolean enabled)
|
RedisClusterPubSubCommands<K,V> |
sync()
Returns the
RedisClusterPubSubCommands API for the current connection. |
addListener, removeListener
isMulti
close, dispatch, dispatch, flushCommands, getOptions, getTimeout, isOpen, reset, setAutoFlushCommands, setTimeout, setTimeout
RedisClusterPubSubCommands<K,V> sync()
RedisClusterPubSubCommands
API for the current connection. Does not create a new connection.sync
in interface StatefulRedisConnection<K,V>
sync
in interface StatefulRedisPubSubConnection<K,V>
RedisClusterPubSubAsyncCommands<K,V> async()
RedisClusterPubSubAsyncCommands
API for the current connection. Does not create a new connection.async
in interface StatefulRedisConnection<K,V>
async
in interface StatefulRedisPubSubConnection<K,V>
RedisClusterPubSubReactiveCommands<K,V> reactive()
RedisClusterPubSubReactiveCommands
API for the current connection. Does not create a new connection.reactive
in interface StatefulRedisConnection<K,V>
reactive
in interface StatefulRedisPubSubConnection<K,V>
StatefulRedisPubSubConnection<K,V> getConnection(String nodeId)
nodeId
, that behavior can also lead to a closed connection once the node with the
specified nodeId
is no longer part of the cluster.
Do not close the connections. Otherwise, unpredictable behavior will occur. The nodeId must be part of the cluster and is
validated against the current topology view in Partitions
.
nodeId
- the node IdRedisException
- if the requested node identified by nodeId
is not part of the clusterCompletableFuture<StatefulRedisPubSubConnection<K,V>> getConnectionAsync(String nodeId)
nodeId
, that behavior can also lead to a closed connection once the
node with the specified nodeId
is no longer part of the cluster.
Do not close the connections. Otherwise, unpredictable behavior will occur. The nodeId must be part of the cluster and is
validated against the current topology view in Partitions
.
nodeId
- the node IdCompletableFuture
to indicate success or failure to connect to the requested cluster node.RedisException
- if the requested node identified by nodeId
is not part of the clusterStatefulRedisPubSubConnection<K,V> getConnection(String host, int port)
host
and port
,
are no longer part of the cluster.
Do not close the connections. Otherwise, unpredictable behavior will occur. Host and port connections are verified by
default for cluster membership, see ClusterClientOptions.isValidateClusterNodeMembership()
.
host
- the hostport
- the portRedisException
- if the requested node identified by host
and port
is not part of the clusterCompletableFuture<StatefulRedisPubSubConnection<K,V>> getConnectionAsync(String host, int port)
host
and port
,
are no longer part of the cluster.
Do not close the connections. Otherwise, unpredictable behavior will occur. Host and port connections are verified by
default for cluster membership, see ClusterClientOptions.isValidateClusterNodeMembership()
.
host
- the hostport
- the portCompletableFuture
to indicate success or failure to connect to the requested cluster node.RedisException
- if the requested node identified by host
and port
is not part of the clusterPartitions getPartitions()
void setNodeMessagePropagation(boolean enabled)
this
connections
listeners
.
If enabled
is true, then Pub/Sub messages received on node-specific connections are propagated to this
connection facade. Registered RedisPubSubListener
will receive messages from individual node subscriptions.
Node event propagation is disabled by default.
enabled
- true to enable node message propagation; false (default) to disable message
propagation.void addListener(RedisClusterPubSubListener<K,V> listener)
listener
.listener
- the listener, must not be null.void removeListener(RedisClusterPubSubListener<K,V> listener)
listener
.listener
- the listener, must not be null.Copyright © 2017 lettuce.io. All rights reserved.