Skip to content

Support for redis cluster protocol #5697

@HenryYYang

Description

@HenryYYang

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    design proposalNeeds design doc/proposal before implementationenhancementFeature requests. Not bugs or questions.stalestalebot believes this issue/PR has not been touched recently

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions