Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Mordern Redis Cluster solution for easy operation.

License

NotificationsYou must be signed in to change notification settings

doyoubi/undermoon

Repository files navigation

undermoon logo

UndermoonContinuous Integration

Undermoon is a self-managed Redis clustering system based onRedis Cluster Protocol supporting:

  • Horizontal scalability and high availability
  • Cluster management through HTTP API
  • Automatic failover for both master and replica
  • Fast scaling

Any storage system implementing redis protocol could also somehow work with undermoon,such asKeyDB.

For more in-depth explanation of Redis Cluster Protocol and how Undermoon implement it,please refer toRedis Cluster Protocol.

Architecture

architecture

Metadata Storage

Metadata storage stores all the metadata of the wholeundermoon cluster,including existing Redis instances, proxies, and exposed Redis clusters.Now it's an in-memory storage server calledMemory Broker.When usingundermoon-operator,thisMemory Broker will change to useConfigMap to store the data.

Coordinator

Coordinator will synchronize the metadata between broker and server proxy.It also actively checks the liveness of server proxy and initiates failover.

Storage Cluster

The storage cluster consists of server proxies and Redis instances.It serves just like the official Redis Cluster to the applications.A Redis Cluster Proxy could be added between it and applicationsso that applications don't need to upgrade their Redis clients to smart clients.

Chunk

Chunk is the smallest building block of every single exposed Redis Cluster.Each chunk consists of 4 Redis instances and 2 server proxies evenly distributed in two different physical machines.So the node number of each Redis cluster will be the multiples of 4 with half masters and half replicas.

The design of chunk makes it very easy to build a cluster with a good topology forworkload balancing.

Getting Started

Run Undermoon in Kubernetes

Usingundermoon-operatoris the easiest way to create Redis clusters if you have Kubernetes.

helm install my-undermoon-operator undermoon-operator-<x.x.x>.tgzhelm install \    --set 'cluster.clusterName=my-cluster-name' \    --set 'cluster.chunkNumber=2' \    --set 'cluster.maxMemory=2048' \    --set 'cluster.port=5299' \    my-cluster \    -n my-namespace \    undermoon-cluster-<x.x.x>.tgz

See theREADME.md ofundermoon-operatorfor how to use it.

Run Undermoon Using Docker Compose

Seedocker compose example.

Setup Undermoon Manually

Or you can set them up without docker following this docs:setting up undermoon manually.

Development

undermoon tries to avoidunsafe and some calls that could crash likeunwrap.

Run the following commands before committing your codes:

$ make lint$ make test

See more in thedevelopment guide.

Documentation

API


[8]ページ先頭

©2009-2025 Movatter.jp