Packages

c

com.avsystem.commons.redis

RedisConnectionClient

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
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. RedisConnectionClient
  2. Closeable
  3. AutoCloseable
  4. RedisConnectionExecutor
  5. RedisNodeExecutor
  6. RedisOpExecutor
  7. RedisKeyedExecutor
  8. RedisExecutor
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new RedisConnectionClient(address: NodeAddress = NodeAddress.Default, config: ConnectionConfig = ConnectionConfig())(implicit system: ActorSystem)

Value Members

  1. val address: NodeAddress
  2. def close(): Unit
    Definition Classes
    RedisConnectionClient → Closeable → AutoCloseable
  3. val config: ConnectionConfig
  4. 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
    RedisConnectionClientRedisExecutor
  5. 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 and UNWATCH 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 for WATCH and UNWATCH commands to work as expected.

    Definition Classes
    RedisConnectionClientRedisOpExecutor
  6. def executionContext: commons.ExecutionContext
    Definition Classes
    RedisConnectionClientRedisExecutor
  7. 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.