Undermoon: Self‑Managing Redis Cluster Built on the Redis Cluster Protocol
Undermoon is an open‑source system that implements a self‑managing Redis cluster using the Redis Cluster protocol, offering horizontal scalability, high availability, HTTP‑API management, automatic master‑replica failover, and rapid expansion, with its architecture detailed across metadata storage, coordinator, storage cluster, and chunk components.
Undermoon is a self‑managing Redis cluster system built on the Redis Cluster protocol. It provides horizontal scalability, high availability, cluster management via an HTTP API, automatic master‑replica failover, and fast expansion. The project address is https://github.com/doyoubi/undermoon.
Project address: https://github.com/doyoubi/undermoon
The Metadata storage holds all metadata of the Undermoon cluster, including Redis instances, proxies, and exposed Redis clusters. Currently it uses an in‑memory server called Memory Broker; when the undermoon-operator is employed, this broker switches to a ConfigMap for data storage.
The Coordinator synchronizes metadata between proxies and server proxies, actively monitors proxy liveness, and initiates failover when needed.
The Storage Cluster consists of server proxies and Redis instances, serving applications just like an official Redis Cluster. A Redis Cluster Proxy can be placed between the application and the cluster so that the application does not need to upgrade its Redis client to a smart client.
A Chunk is the smallest building block of each exposed Redis cluster. Each chunk contains 4 Redis instances and 2 server proxies, evenly distributed across two physical machines. Consequently, the total number of Redis nodes is a multiple of 4, with half acting as masters and half as replicas. This design makes it easy to construct clusters with balanced topology for workload distribution.
For a deeper explanation of the Redis Cluster Protocol and how Undermoon implements it, see the documentation at https://github.com/doyoubi/undermoon/blob/master/docs/redis_cluster_protocol.md. Additional articles discuss the Rust implementation of Undermoon and deployment tips in Kubernetes.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
