
io.lettuce.core.pubsub.StatefulRedisPubSubConnection Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lettuce-core Show documentation
Show all versions of lettuce-core Show documentation
Advanced and thread-safe Java Redis client for synchronous, asynchronous, and
reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs
and much more.
The newest version!
package io.lettuce.core.pubsub;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.pubsub.api.async.RedisPubSubAsyncCommands;
import io.lettuce.core.pubsub.api.reactive.RedisPubSubReactiveCommands;
import io.lettuce.core.pubsub.api.sync.RedisPubSubCommands;
/**
* An asynchronous thread-safe pub/sub connection to a redis server. After one or more channels are subscribed to only pub/sub
* related commands or {@literal QUIT} may be called.
*
* Incoming messages and results of the {@literal subscribe}/{@literal unsubscribe} calls will be passed to all registered
* {@link RedisPubSubListener}s.
*
* A {@link io.lettuce.core.protocol.ConnectionWatchdog} monitors each connection and reconnects automatically until
* {@link #close} is called. Channel and pattern subscriptions are renewed after reconnecting.
*
* @param Key type.
* @param Value type.
* @author Mark Paluch
* @since 4.0
*/
public interface StatefulRedisPubSubConnection extends StatefulRedisConnection {
/**
* Returns the {@link RedisPubSubCommands} API for the current connection. Does not create a new connection.
*
* @return the synchronous API for the underlying connection.
*/
RedisPubSubCommands sync();
/**
* Returns the {@link RedisPubSubAsyncCommands} API for the current connection. Does not create a new connection.
*
* @return the asynchronous API for the underlying connection.
*/
RedisPubSubAsyncCommands async();
/**
* Returns the {@link RedisPubSubReactiveCommands} API for the current connection. Does not create a new connection.
*
* @return the reactive API for the underlying connection.
*/
RedisPubSubReactiveCommands reactive();
/**
* Add a new {@link RedisPubSubListener listener}.
*
* @param listener the listener, must not be {@code null}.
*/
void addListener(RedisPubSubListener listener);
/**
* Remove an existing {@link RedisPubSubListener listener}.
*
* @param listener the listener, must not be {@code null}.
*/
void removeListener(RedisPubSubListener listener);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy