final class RedisConnectionClient extends RedisConnectionExecutor with Closeable
Redis client that uses a single, non-reconnectable connection.
This is the most "raw" client implementation and the only one capable of directly executing connection state
changing commands like AUTH
, CLIENT SETNAME
, WATCH
, etc.
However, note that connection-setup commands like AUTH
may also be specified in
ConnectionConfig
(which may also be specified for connections used by RedisNodeClient and RedisClusterClient).
This type of client should only be used when requiring capability of manual handling of connection state. If you simply need a single-connection, reconnectable client, use RedisNodeClient with connection pool size configured to 1.
- Self Type
- RedisConnectionClient
- Alphabetic
- By Inheritance
- RedisConnectionClient
- Closeable
- AutoCloseable
- RedisConnectionExecutor
- RedisNodeExecutor
- RedisOpExecutor
- RedisKeyedExecutor
- RedisExecutor
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new RedisConnectionClient(address: NodeAddress = NodeAddress.Default, config: ConnectionConfig = ConnectionConfig())(implicit system: ActorSystem)
Value Members
- val address: NodeAddress
-
def
close(): Unit
- Definition Classes
- RedisConnectionClient → Closeable → AutoCloseable
- val config: ConnectionConfig
-
def
executeBatch[A](batch: RedisBatch[A], config: ExecutionConfig): commons.Future[A]
Executes a RedisBatch.
Executes a RedisBatch. Redis client implementations (e.g. RedisNodeClient) implement this method by actually sending the batch to Redis server and receving and decoding the response.
WARNING: Even though the signature of this method indicates that any batch can be executed, every client type supports only a subset of commands. For example, you can't execute
CLIENT SETNAME
(clientSetname) on a RedisNodeClient because it's a connection state changing command and RedisNodeClient uses a pool of reusable connections. If you try to do this, you'll get a ForbiddenCommandException.- Definition Classes
- RedisConnectionClient → RedisExecutor
-
def
executeOp[A](op: RedisOp[A], executionConfig: ExecutionConfig): commons.Future[A]
Executes a RedisOp, i.e.
Executes a RedisOp, i.e. a sequence of RedisBatches where each batch may be created based on a result of previous batch and may use
WATCH
andUNWATCH
commands for the purpose of performing transactions with optimistic locking. Redis client implementations (e.g. RedisNodeClient) implement execution of RedisOp by reserving a single connection so that entire RedisOp is executed on that single connection without any other concurrent commands executing in between. This is necessary forWATCH
andUNWATCH
commands to work as expected.- Definition Classes
- RedisConnectionClient → RedisOpExecutor
-
def
executionContext: commons.ExecutionContext
- Definition Classes
- RedisConnectionClient → RedisExecutor
-
def
initialized: commons.Future[RedisConnectionClient.this.type]
Waits until Redis connection is initialized.
Waits until Redis connection is initialized. Note that you can call executeBatch and executeOp even if the connection is not yet initialized - requests will be internally queued and executed after initialization is complete.