
io.lettuce.core.api.StatefulRedisConnection 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.api;
import io.lettuce.core.api.async.RedisAsyncCommands;
import io.lettuce.core.api.push.PushListener;
import io.lettuce.core.api.reactive.RedisReactiveCommands;
import io.lettuce.core.api.sync.RedisCommands;
import io.lettuce.core.protocol.ConnectionWatchdog;
/**
* A thread-safe connection to a redis server. Multiple threads may share one {@link StatefulRedisConnection}.
*
* A {@link ConnectionWatchdog} monitors each connection and reconnects automatically until {@link #close} is called. All
* pending commands will be (re)sent after successful reconnection.
*
* @param Key type.
* @param Value type.
* @author Mark Paluch
* @since 4.0
*/
public interface StatefulRedisConnection extends StatefulConnection {
/**
*
* @return true, if the connection is within a transaction.
*/
boolean isMulti();
/**
* Returns the {@link RedisCommands} API for the current connection. Does not create a new connection.
*
* @return the synchronous API for the underlying connection.
*/
RedisCommands sync();
/**
* Returns the {@link RedisAsyncCommands} API for the current connection. Does not create a new connection.
*
* @return the asynchronous API for the underlying connection.
*/
RedisAsyncCommands async();
/**
* Returns the {@link RedisReactiveCommands} API for the current connection. Does not create a new connection.
*
* @return the reactive API for the underlying connection.
*/
RedisReactiveCommands reactive();
/**
* Add a new {@link PushListener listener} to consume push messages.
*
* @param listener the listener, must not be {@code null}.
* @since 6.0
*/
void addListener(PushListener listener);
/**
* Remove an existing {@link PushListener listener}.
*
* @param listener the listener, must not be {@code null}.
* @since 6.0
*/
void removeListener(PushListener listener);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy