10分钟上手Undermoon:Docker Compose快速部署Redis集群完整指南

发布时间:2026/7/28 7:59:16
10分钟上手Undermoon:Docker Compose快速部署Redis集群完整指南 10分钟上手UndermoonDocker Compose快速部署Redis集群完整指南【免费下载链接】undermoonMordern Redis Cluster solution for easy operation.项目地址: https://gitcode.com/gh_mirrors/un/undermoonUndermoon是一个现代化的Redis集群解决方案旨在简化Redis集群的部署与运维。本文将带你通过Docker Compose在10分钟内快速搭建一个功能完整的Undermoon Redis集群无需复杂的手动配置即使是新手也能轻松上手。 准备工作在开始部署前请确保你的环境中已安装以下工具Docker Compose用于编排和管理容器服务redis-cliRedis官方客户端用于连接和操作集群jq轻量级JSON解析工具用于处理API返回数据安装指南 一键部署集群Undermoon提供了预配置的Docker Compose示例只需简单几步即可启动完整集群1. 获取项目代码git clone https://gitcode.com/gh_mirrors/un/undermoon cd undermoon2. 启动集群服务直接运行预定义的Makefile命令自动构建并启动所有组件make docker-mem-broker-example⚠️ 如果需要自定义构建镜像可以先执行make docker-build-test-image再运行make docker-mem-broker 初始化集群注册代理服务容器启动后执行初始化脚本注册存储资源./examples/mem-broker/init.sh验证代理服务是否正常注册curl http://localhost:7799/api/v3/proxies/addresses正常情况下会返回6个可用的代理节点地址。创建Redis集群Undermoon集群节点数量需为4的倍数我们先创建一个包含4个节点的基础集群curl -XPOST -H Content-Type: application/json \ http://localhost:7799/api/v3/clusters/meta/mycluster -d {node_number: 4}配置本地hosts为了让客户端能正确解析容器内服务地址需要在/etc/hosts中添加以下条目127.0.0.1 server_proxy1 127.0.0.1 server_proxy2 127.0.0.1 server_proxy3 127.0.0.1 server_proxy4 127.0.0.1 server_proxy5 127.0.0.1 server_proxy6 连接集群查找集群代理通过API查询刚创建的mycluster使用的代理地址curl -s http://localhost:7799/api/v3/clusters/meta/mycluster | jq .cluster.nodes[].proxy_address | uniq返回结果类似server_proxy5:6005 server_proxy6:6006使用redis-cli连接选择其中一个代理地址通过集群模式连接redis-cli -h server_proxy5 -p 6005 -c验证集群状态server_proxy5:6005 cluster nodes mycluster___________d71bc00fbdddf89_____ server_proxy5:6005 myself,master - 0 0 7 connected 0-8191 mycluster___________8de73f9146386295____ server_proxy6:6006 master - 0 0 7 connected 8192-16383测试数据读写会自动重定向到正确的槽位server_proxy5:6005 set hello undermoon - Redirected to slot [866] located at server_proxy5:6005 OK server_proxy5:6005 get hello undermoon 集群扩展Undermoon支持在线扩容无需停机即可增加节点数量扩展到8个节点# 添加4个新节点 curl -XPATCH -H Content-Type: application/json \ http://localhost:7799/api/v3/clusters/nodes/mycluster -d {node_number: 4} # 启动数据迁移 curl -XPOST http://localhost:7799/api/v3/clusters/migrations/expand/mycluster验证扩容结果redis-cli -h server_proxy5 -p 6005 -c cluster nodes会显示4个主节点每个负责不同的槽位范围。 故障转移测试Undermoon具备自动故障检测和恢复能力模拟节点故障# 停止其中一个代理容器 docker ps | grep server_proxy5 | awk {print $1} | xargs docker kill验证自动恢复几分钟后检查集群状态会发现故障节点已被自动替换curl -s http://localhost:7799/api/v3/clusters/meta/mycluster | jq .cluster.nodes[].proxy_address | uniq输出中server_proxy5会被其他代理如server_proxy3替换。 更多资源官方文档docs/Docker Compose配置文件examples/docker-compose-mem-broker-example.yml初始化脚本examples/mem-broker/init.sh配置模板examples/mem-broker/通过以上步骤你已成功部署并体验了Undermoon Redis集群的核心功能。Undermoon的设计理念是简化Redis集群的运维复杂度让开发者可以更专注于业务逻辑而非底层基础设施管理。如需深入了解更多高级特性请参考项目文档或源码。【免费下载链接】undermoonMordern Redis Cluster solution for easy operation.项目地址: https://gitcode.com/gh_mirrors/un/undermoon创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考