-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Description
Support for redis cluster protocol
Description:
The redis cluster protocol has been implemented in Redis 3.0 or greater. It is a distributed implementation with a well understood trade off between availability, scalability and best effort consistency.
Supporting this protocol in envoy will provide similar benefit as the original redis proxy. It's a valuable protocol to support for applications that desires a different trade off as the current redis proxy. It's also the protocol used by most major cloud offerings (AWS elasticache, Azure Cache, Google Memorystore .. etc).
Proposal:
Due to the different discovery mechanism, we should create a new redis cluster proxy.
The initial discovery endpoint point will be specified as a STATIC, STRICT_DNS or LOGICAL_DNS clusters. On initial connection, the proxy will use the CLUSTER SLOTS command to retrieve the cluster topology from the cluster.
Subsequently the cluster topology will be maintained and updated based on MOVE and ASK redirections, or active health check.
For more details see redis cluster spec
If eventual consistency is acceptable, read from replicas will be supported through configuration. If there's no major objections, I'll begin working on a PR for this.