Interface RedisProxy.ConnPoolSettingsOrBuilder

All Superinterfaces:
com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder
All Known Implementing Classes:
RedisProxy.ConnPoolSettings, RedisProxy.ConnPoolSettings.Builder
Enclosing class:
RedisProxy

public static interface RedisProxy.ConnPoolSettingsOrBuilder extends com.google.protobuf.MessageOrBuilder
  • Method Summary

    Modifier and Type
    Method
    Description
    com.google.protobuf.Duration
    The encoded request buffer is flushed N milliseconds after the first request has been encoded, unless the buffer size has already exceeded ``max_buffer_size_before_flush``.
    com.google.protobuf.DurationOrBuilder
    The encoded request buffer is flushed N milliseconds after the first request has been encoded, unless the buffer size has already exceeded ``max_buffer_size_before_flush``.
    Ops or connection timeout triggers reconnection to redis server which could result in reconnection storm to busy redis server.
    Ops or connection timeout triggers reconnection to redis server which could result in reconnection storm to busy redis server.
    If ``enable_redirection`` is set to true this option configures the DNS cache that the connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
    If ``enable_redirection`` is set to true this option configures the DNS cache that the connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
    boolean
    Enable per-command statistics per upstream cluster, in addition to the filter level aggregate count.
    boolean
    Use hash tagging on every redis key to guarantee that keys with the same hash tag will be forwarded to the same upstream.
    boolean
    Accept `moved and ask redirection <https://redis.io/topics/cluster-spec#redirection-and-resharding>`_ errors from upstream redis servers, and retry commands to the specified target server.
    int
    Maximum size of encoded request buffer before flush is triggered and encoded requests are sent upstream.
    com.google.protobuf.UInt32Value
    ``max_upstream_unknown_connections`` controls how many upstream connections to unknown hosts can be created at any given time by any given worker thread (see ``enable_redirection`` for more details).
    com.google.protobuf.UInt32ValueOrBuilder
    ``max_upstream_unknown_connections`` controls how many upstream connections to unknown hosts can be created at any given time by any given worker thread (see ``enable_redirection`` for more details).
    com.google.protobuf.Duration
    Per-operation timeout in milliseconds.
    com.google.protobuf.DurationOrBuilder
    Per-operation timeout in milliseconds.
    Read policy.
    int
    Read policy.
    boolean
    The encoded request buffer is flushed N milliseconds after the first request has been encoded, unless the buffer size has already exceeded ``max_buffer_size_before_flush``.
    boolean
    Ops or connection timeout triggers reconnection to redis server which could result in reconnection storm to busy redis server.
    boolean
    If ``enable_redirection`` is set to true this option configures the DNS cache that the connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
    boolean
    ``max_upstream_unknown_connections`` controls how many upstream connections to unknown hosts can be created at any given time by any given worker thread (see ``enable_redirection`` for more details).
    boolean
    Per-operation timeout in milliseconds.

    Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

    isInitialized

    Methods inherited from interface com.google.protobuf.MessageOrBuilder

    findInitializationErrors, getAllFields, getDefaultInstanceForType, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof
  • Method Details

    • hasOpTimeout

      boolean hasOpTimeout()
       Per-operation timeout in milliseconds. The timer starts when the first
       command of a pipeline is written to the backend connection. Each response received from Redis
       resets the timer since it signifies that the next command is being processed by the backend.
       The only exception to this behavior is when a connection to a backend is not yet established.
       In that case, the connect timeout on the cluster will govern the timeout until the connection
       is ready.
       
      .google.protobuf.Duration op_timeout = 1 [(.validate.rules) = { ... }
      Returns:
      Whether the opTimeout field is set.
    • getOpTimeout

      com.google.protobuf.Duration getOpTimeout()
       Per-operation timeout in milliseconds. The timer starts when the first
       command of a pipeline is written to the backend connection. Each response received from Redis
       resets the timer since it signifies that the next command is being processed by the backend.
       The only exception to this behavior is when a connection to a backend is not yet established.
       In that case, the connect timeout on the cluster will govern the timeout until the connection
       is ready.
       
      .google.protobuf.Duration op_timeout = 1 [(.validate.rules) = { ... }
      Returns:
      The opTimeout.
    • getOpTimeoutOrBuilder

      com.google.protobuf.DurationOrBuilder getOpTimeoutOrBuilder()
       Per-operation timeout in milliseconds. The timer starts when the first
       command of a pipeline is written to the backend connection. Each response received from Redis
       resets the timer since it signifies that the next command is being processed by the backend.
       The only exception to this behavior is when a connection to a backend is not yet established.
       In that case, the connect timeout on the cluster will govern the timeout until the connection
       is ready.
       
      .google.protobuf.Duration op_timeout = 1 [(.validate.rules) = { ... }
    • getEnableHashtagging

      boolean getEnableHashtagging()
       Use hash tagging on every redis key to guarantee that keys with the same hash tag will be
       forwarded to the same upstream. The hash key used for determining the upstream in a
       consistent hash ring configuration will be computed from the hash tagged key instead of the
       whole key. The algorithm used to compute the hash tag is identical to the `redis-cluster
       implementation <https://redis.io/topics/cluster-spec#keys-hash-tags>`_.
      
       Examples:
      
       * '{user1000}.following' and '{user1000}.followers' **will** be sent to the same upstream
       * '{user1000}.following' and '{user1001}.following' **might** be sent to the same upstream
       
      bool enable_hashtagging = 2;
      Returns:
      The enableHashtagging.
    • getEnableRedirection

      boolean getEnableRedirection()
       Accept `moved and ask redirection
       <https://redis.io/topics/cluster-spec#redirection-and-resharding>`_ errors from upstream
       redis servers, and retry commands to the specified target server. The target server does not
       need to be known to the cluster manager. If the command cannot be redirected, then the
       original error is passed downstream unchanged. By default, this support is not enabled.
       
      bool enable_redirection = 3;
      Returns:
      The enableRedirection.
    • hasDnsCacheConfig

      boolean hasDnsCacheConfig()
       If ``enable_redirection`` is set to true this option configures the DNS cache that the
       connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
       If no configuration is provided, DNS lookups will not be performed (and thus the MOVED/ASK errors
       will be propagated verbatim to the user).
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 9;
      Returns:
      Whether the dnsCacheConfig field is set.
    • getDnsCacheConfig

      DnsCacheConfig getDnsCacheConfig()
       If ``enable_redirection`` is set to true this option configures the DNS cache that the
       connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
       If no configuration is provided, DNS lookups will not be performed (and thus the MOVED/ASK errors
       will be propagated verbatim to the user).
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 9;
      Returns:
      The dnsCacheConfig.
    • getDnsCacheConfigOrBuilder

      DnsCacheConfigOrBuilder getDnsCacheConfigOrBuilder()
       If ``enable_redirection`` is set to true this option configures the DNS cache that the
       connection pool will use to resolve hostnames that are returned with MOVED and ASK responses.
       If no configuration is provided, DNS lookups will not be performed (and thus the MOVED/ASK errors
       will be propagated verbatim to the user).
       
      .envoy.extensions.common.dynamic_forward_proxy.v3.DnsCacheConfig dns_cache_config = 9;
    • getMaxBufferSizeBeforeFlush

      int getMaxBufferSizeBeforeFlush()
       Maximum size of encoded request buffer before flush is triggered and encoded requests
       are sent upstream. If this is unset, the buffer flushes whenever it receives data
       and performs no batching.
       This feature makes it possible for multiple clients to send requests to Envoy and have
       them batched- for example if one is running several worker processes, each with its own
       Redis connection. There is no benefit to using this with a single downstream process.
       Recommended size (if enabled) is 1024 bytes.
       
      uint32 max_buffer_size_before_flush = 4;
      Returns:
      The maxBufferSizeBeforeFlush.
    • hasBufferFlushTimeout

      boolean hasBufferFlushTimeout()
       The encoded request buffer is flushed N milliseconds after the first request has been
       encoded, unless the buffer size has already exceeded ``max_buffer_size_before_flush``.
       If ``max_buffer_size_before_flush`` is not set, this flush timer is not used. Otherwise,
       the timer should be set according to the number of clients, overall request rate and
       desired maximum latency for a single command. For example, if there are many requests
       being batched together at a high rate, the buffer will likely be filled before the timer
       fires. Alternatively, if the request rate is lower the buffer will not be filled as often
       before the timer fires.
       If ``max_buffer_size_before_flush`` is set, but ``buffer_flush_timeout`` is not, the latter
       defaults to 3ms.
       
      .google.protobuf.Duration buffer_flush_timeout = 5;
      Returns:
      Whether the bufferFlushTimeout field is set.
    • getBufferFlushTimeout

      com.google.protobuf.Duration getBufferFlushTimeout()
       The encoded request buffer is flushed N milliseconds after the first request has been
       encoded, unless the buffer size has already exceeded ``max_buffer_size_before_flush``.
       If ``max_buffer_size_before_flush`` is not set, this flush timer is not used. Otherwise,
       the timer should be set according to the number of clients, overall request rate and
       desired maximum latency for a single command. For example, if there are many requests
       being batched together at a high rate, the buffer will likely be filled before the timer
       fires. Alternatively, if the request rate is lower the buffer will not be filled as often
       before the timer fires.
       If ``max_buffer_size_before_flush`` is set, but ``buffer_flush_timeout`` is not, the latter
       defaults to 3ms.
       
      .google.protobuf.Duration buffer_flush_timeout = 5;
      Returns:
      The bufferFlushTimeout.
    • getBufferFlushTimeoutOrBuilder

      com.google.protobuf.DurationOrBuilder getBufferFlushTimeoutOrBuilder()
       The encoded request buffer is flushed N milliseconds after the first request has been
       encoded, unless the buffer size has already exceeded ``max_buffer_size_before_flush``.
       If ``max_buffer_size_before_flush`` is not set, this flush timer is not used. Otherwise,
       the timer should be set according to the number of clients, overall request rate and
       desired maximum latency for a single command. For example, if there are many requests
       being batched together at a high rate, the buffer will likely be filled before the timer
       fires. Alternatively, if the request rate is lower the buffer will not be filled as often
       before the timer fires.
       If ``max_buffer_size_before_flush`` is set, but ``buffer_flush_timeout`` is not, the latter
       defaults to 3ms.
       
      .google.protobuf.Duration buffer_flush_timeout = 5;
    • hasMaxUpstreamUnknownConnections

      boolean hasMaxUpstreamUnknownConnections()
       ``max_upstream_unknown_connections`` controls how many upstream connections to unknown hosts
       can be created at any given time by any given worker thread (see ``enable_redirection`` for
       more details). If the host is unknown and a connection cannot be created due to enforcing
       this limit, then redirection will fail and the original redirection error will be passed
       downstream unchanged. This limit defaults to 100.
       
      .google.protobuf.UInt32Value max_upstream_unknown_connections = 6;
      Returns:
      Whether the maxUpstreamUnknownConnections field is set.
    • getMaxUpstreamUnknownConnections

      com.google.protobuf.UInt32Value getMaxUpstreamUnknownConnections()
       ``max_upstream_unknown_connections`` controls how many upstream connections to unknown hosts
       can be created at any given time by any given worker thread (see ``enable_redirection`` for
       more details). If the host is unknown and a connection cannot be created due to enforcing
       this limit, then redirection will fail and the original redirection error will be passed
       downstream unchanged. This limit defaults to 100.
       
      .google.protobuf.UInt32Value max_upstream_unknown_connections = 6;
      Returns:
      The maxUpstreamUnknownConnections.
    • getMaxUpstreamUnknownConnectionsOrBuilder

      com.google.protobuf.UInt32ValueOrBuilder getMaxUpstreamUnknownConnectionsOrBuilder()
       ``max_upstream_unknown_connections`` controls how many upstream connections to unknown hosts
       can be created at any given time by any given worker thread (see ``enable_redirection`` for
       more details). If the host is unknown and a connection cannot be created due to enforcing
       this limit, then redirection will fail and the original redirection error will be passed
       downstream unchanged. This limit defaults to 100.
       
      .google.protobuf.UInt32Value max_upstream_unknown_connections = 6;
    • getEnableCommandStats

      boolean getEnableCommandStats()
       Enable per-command statistics per upstream cluster, in addition to the filter level aggregate
       count. These commands are measured in microseconds.
       
      bool enable_command_stats = 8;
      Returns:
      The enableCommandStats.
    • getReadPolicyValue

      int getReadPolicyValue()
       Read policy. The default is to read from the primary.
       
      .envoy.extensions.filters.network.redis_proxy.v3.RedisProxy.ConnPoolSettings.ReadPolicy read_policy = 7 [(.validate.rules) = { ... }
      Returns:
      The enum numeric value on the wire for readPolicy.
    • getReadPolicy

       Read policy. The default is to read from the primary.
       
      .envoy.extensions.filters.network.redis_proxy.v3.RedisProxy.ConnPoolSettings.ReadPolicy read_policy = 7 [(.validate.rules) = { ... }
      Returns:
      The readPolicy.
    • hasConnectionRateLimit

      boolean hasConnectionRateLimit()
       Ops or connection timeout triggers reconnection to redis server which could result in reconnection
       storm to busy redis server. This config is a protection to rate limit reconnection rate.
       If not set, there will be no rate limiting on the reconnection.
       
      .envoy.extensions.filters.network.redis_proxy.v3.RedisProxy.ConnectionRateLimit connection_rate_limit = 10;
      Returns:
      Whether the connectionRateLimit field is set.
    • getConnectionRateLimit

      RedisProxy.ConnectionRateLimit getConnectionRateLimit()
       Ops or connection timeout triggers reconnection to redis server which could result in reconnection
       storm to busy redis server. This config is a protection to rate limit reconnection rate.
       If not set, there will be no rate limiting on the reconnection.
       
      .envoy.extensions.filters.network.redis_proxy.v3.RedisProxy.ConnectionRateLimit connection_rate_limit = 10;
      Returns:
      The connectionRateLimit.
    • getConnectionRateLimitOrBuilder

      RedisProxy.ConnectionRateLimitOrBuilder getConnectionRateLimitOrBuilder()
       Ops or connection timeout triggers reconnection to redis server which could result in reconnection
       storm to busy redis server. This config is a protection to rate limit reconnection rate.
       If not set, there will be no rate limiting on the reconnection.
       
      .envoy.extensions.filters.network.redis_proxy.v3.RedisProxy.ConnectionRateLimit connection_rate_limit = 10;