.. _envoy_api_file_envoy/config/cluster/redis/redis_cluster.proto: Redis Cluster Configuration =========================== This cluster adds support for `Redis Cluster `_, as part of :ref:`Envoy's support for Redis Cluster `. Redis Cluster is an extension of Redis which supports sharding and high availability (where a shard that loses its master fails over to a replica, and designates it as the new master). However, as there is no unified frontend or proxy service in front of Redis Cluster, the client (in this case Envoy) must locally maintain the state of the Redis Cluster, specifically the topology. A random node in the cluster is queried for the topology using the `CLUSTER SLOTS command `_. This result is then stored locally, and updated at user-configured intervals. Example: .. code-block:: yaml name: name connect_timeout: 0.25s dns_lookup_family: V4_ONLY hosts: - socket_address: address: foo.bar.com port_value: 22120 cluster_type: name: envoy.clusters.redis typed_config: "@type": type.googleapis.com/google.protobuf.Struct value: cluster_refresh_rate: 30s cluster_refresh_timeout: 0.5s .. _envoy_api_msg_config.cluster.redis.RedisClusterConfig: config.cluster.redis.RedisClusterConfig --------------------------------------- `[config.cluster.redis.RedisClusterConfig proto] `_ .. code-block:: json { "cluster_refresh_rate": "{...}", "cluster_refresh_timeout": "{...}" } .. _envoy_api_field_config.cluster.redis.RedisClusterConfig.cluster_refresh_rate: cluster_refresh_rate (`Duration `_) Interval between successive topology refresh requests. If not set, this defaults to 5s. .. _envoy_api_field_config.cluster.redis.RedisClusterConfig.cluster_refresh_timeout: cluster_refresh_timeout (`Duration `_) Timeout for topology refresh request. If not set, this defaults to 3s.