ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Valkey 集群部署实战:3 分钟 5 条命令搭出 3 主 3 从分布式集群

Valkey 集群部署实战:3 分钟 5 条命令搭出 3 主 3 从分布式集群 Valkey 集群部署实战3 分钟 5 条命令搭出 3 主 3 从分布式集群【免费下载链接】placeholderkvA flexible distributed key-value database that is optimized for caching and other realtime workloads.项目地址: https://gitcode.com/GitHub_Trending/pl/placeholderkv本篇 Valkey 集群部署实战用官方 create-cluster 脚本以 5 条命令搭出一套 3 主 3 从的 Valkey 分布式集群全程约 3 分钟。面向想快速搭一套集群做本地测试、演示或学习的人所有操作均可复制即用读完你还会带走一套日常运维与排障手法。全文按 4 个操作阶段展开环境自检 → 拉起集群 → 验证健康 → 日常运维最后给排障速查表和下一步行动清单。 动手之前2 分钟环境自检确认编译产物就绪脚本会调用src/目录下的valkey-server与valkey-cli先确认这两个文件都存在缺的话先编译源码再来。用 config.sh 改默认参数utils/create-cluster/create-cluster 脚本头部共有 5 个参数参数默认值含义PORT30000起始端口节点依次监听 30001–30006NODES6节点总数REPLICAS1每个主节点的从节点数凑成 3 主 3 从TIMEOUT2000节点间通信超时毫秒CLUSTER_HOST127.0.0.1注册进集群的地址容器或跨机部署需改为实际 IP不用改脚本本身它会自动加载当前目录下的 config.sh放入一个写有要改参数的文件即可PORT31000 CLUSTER_HOST127.0.0.1预期效果之后的 start 全部改用新起始端口和地址脚本保持原样。确认目标端口空闲执行下面的命令查看 6 个端口是否已被占用ss -ltn | grep -E :3000[1-6]没有输出说明端口全空闲有输出行就先在 config.sh 里把 PORT 换掉。 拉起集群3 条命令从 0 到 3 主 3 从第一条启动 6 个实例在 utils/create-cluster/ 目录执行./create-cluster start预期输出 6 行 Starting 30001 到 Starting 30006。每个节点会在当前目录生成日志30001.log、集群配置nodes-30001.conf与数据文件dump-30001.rdb均以端口命名启动参数含--cluster-enabled yes开启集群模式和--appendonly yesAOF把每次写操作追加记录到文件崩溃后回放恢复数据。第二条创建集群架构./create-cluster create -f它在后台调用valkey-cli --cluster create自动把 16384 个哈希槽数据分片的地址簿分给 3 个主节点并配对 3 个从节点。预期输出是一张节点分配表最后一行 Done漏掉 -f 会停在确认提示CtrlC 后补上参数重跑即可。✅ 验证健康3 行输出判断集群是否可用watch 命令看节点状态./create-cluster watch它每秒刷新一次首节点的 cluster nodes 输出CtrlC 退出。看到 6 个节点全部 connected其中 3 个分别持有 0-5460、5461-10922、10923-16383 三段槽位即集群健康。真实读写验证重定向src/valkey-cli -c -p 30001 set demo hello src/valkey-cli -c -p 30001 get demo-c开启集群模式客户端会自动跟随重定向。预期set 先打印 - Redirected to slot [...] located at 127.0.0.1:3000x 再返回 OKget 返回 hello若 set 直接 OK说明该键恰落在 30001 本节点的槽位也属正常。 日常运维停止 / 重启 / 清理一套命令三条命令覆盖绝大多数日常场景./create-cluster stop # 停止整个集群 ./create-cluster restart # 先停再起 ./create-cluster clean # 删除日志、配置与数据文件stop 对每个端口执行 shutdown nosave不写盘输出 Stopping 30001 至 Stopping 30006clean 让目录恢复空白与 start create 配合即可重来。日志可随时用tailall同时跟踪call子命令能向全部 6 个节点顺序下发同一条命令如./create-cluster call dbsize完整命令清单见 utils/create-cluster/README。 排障速查表常见坑与一行修复现象常见原因一行修复命令启动报 Address already in use端口被占用config.sh 里写PORT31000换起始端口create 失败提示节点不足节点没起全或 CLUSTER_HOST 不符./create-cluster start后重试 create读写数据 Connection refused集群未启动./create-cluster start频繁发生主从切换TIMEOUT 过于敏感config.sh 写TIMEOUT5000再./create-cluster restart想验证故障转移能力演练用src/valkey-cli -p 30004 cluster failover最后一行的故障转移连上某个从节点执行该命令它会立即接管原主节点的槽位是验证高可用最常用的演练手段。 下一步做什么集群跑起来之后建议挑 1~2 项深入定制 valkey.conf以官方示例配置为底调 maxmemory、持久化策略等参数再通过脚本的 ADDITIONAL_OPTIONS 注入接入监控用 Prometheus Grafana 采集指标重点盯槽位迁移、故障转移与内存占用三条曲线编排化多机规模改用 Ansible 或 Kubernetes 管理集群创建替代这台单机脚本。附录150 字看懂集群原理Valkey 集群是去中心化架构16384 个哈希槽是数据分片的地址簿键落在哪个槽就归哪个主节点节点间通过 Gossip 消息互相广播状态从节点实时备份主节点主节点超过 TIMEOUT 不可达时集群自动在从节点中选出新主完成故障转移。每个节点的 AOF 回放写操作恢复数据单节点故障不丢数据。【免费下载链接】placeholderkvA flexible distributed key-value database that is optimized for caching and other realtime workloads.项目地址: https://gitcode.com/GitHub_Trending/pl/placeholderkv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表