Valkey集群3分钟部署:create-cluster脚本完整指南 📅 发布时间:2026/9/4 14:39:18 👁 浏览次数: Valkey集群3分钟部署create-cluster脚本完整指南【免费下载链接】placeholderkvA flexible distributed key-value database that is optimized for caching and other realtime workloads.项目地址: https://gitcode.com/GitHub_Trending/pl/placeholderkv手动逐个拉起 6 个 Valkey 节点、改配置、分哈希槽每一步都可能出错还难以排查。本文用 Valkey 项目自带的 create-cluster 脚本一键完成 3 主 3 从分布式集群的启动、创建、监控与清理。读完你能独立从零搭出一个可用集群并自行处理端口冲突等常见问题。 它是谁解决什么问题读完本节你能搞清楚 create-cluster 在 Valkey 生态中的定位和适用边界。create-cluster 是 Valkey 源码自带的一个 bash 脚本负责批量管理 cluster 模式下实例的生命周期启动、创建拓扑、停止、重启、监控、清理数据一应俱全。它的设计目标是开发测试环境下的手动验证——比如快速拉起 6 个以上节点来复现某个集群 bug也适合上手体验集群行为。它不包含生产所需的容量规划与高可用监控生产部署建议走更成熟的编排方案。核心文件就两个主脚本 utils/create-cluster/create-cluster 和官方说明 utils/create-cluster/README。✅ 动手前环境与前置条件读完本节你能拿到环境检查清单和默认参数全貌避免启动阶段返工。环境检查清单Valkey 源码已编译src/下存在valkey-server与valkey-cli有 bash 环境脚本基于 bash 编写本机 30001-30006 端口空闲默认配置当前用户对脚本所在目录有读写权限脚本头部的关键配置参数只列最核心的几个PORT30000 # 基础端口实际监听 PORT1 到 PORTNODES NODES6 # 节点总数默认 6 REPLICAS1 # 每个主节点的从节点数1 即 3主3从 CLUSTER_HOST127.0.0.1 # 集群地址容器内访问需改为宿主机 IP TIMEOUT2000 # 集群节点超时时间毫秒⚡ 核心操作按阶段推进一键启动全部节点目的后台拉起 6 个集群模式实例每个实例拥有独立的配置、日志与数据文件。cd utils/create-cluster ./create-cluster start预期输出Starting 30001 Starting 30002 Starting 30003 Starting 30004 Starting 30005 Starting 30006当前目录会生成nodes-{port}.conf、{port}.log、dump-{port}.rdb等文件。若某个节点没起来直接看对应端口日志。创建集群并分配哈希槽目的调用valkey-cli --cluster create完成 3 主 3 从拓扑构建与 0-16383 哈希槽分配。./create-cluster create -f # -f 等价于 --cluster-yes跳过交互确认预期输出节选Using 6 nodes: 127.0.0.1:30001 ... Performing hash slots allocation on 6 nodes... Warning: Using a total of 6 nodes for 3 masters and 3 replicas. Sending CLUSTER MEET messages to join the cluster... [OK] 16384 cluster slots covered (5461 per node). [OK] Cluster look good, Great!看到最后一行Cluster look good即表示槽位分配完成每个主节点负责 5461 个槽。验证集群状态与读写目的确认所有节点在线并用集群模式客户端验证槽位自动重定向。src/valkey-cli -p 30001 cluster nodes src/valkey-cli -c -p 30001 set testkey cluster-test src/valkey-cli -c -p 30001 get testkey预期输出节选node-id 127.0.0.1:3000110001 master - 0 ... 0-5460 node-id 127.0.0.1:3000410004 slave node-id 0 ... OK cluster-test注意get前必须带-c键的槽位不在 30001 时客户端会自动重定向到负责的主节点否则会报 MOVED 错误。停止集群与数据清理目的优雅停止全部实例重建环境时清掉残留数据避免旧节点 ID 干扰。./create-cluster stop # 逐端口执行 shutdown nosave ./create-cluster clean # 删除 *.log、appendonlydir-*、dump-*.rdb、nodes-*.conf预期输出Stopping 30001 ... Stopping 30006 Cleaning *.log Cleaning appendonlydir-* Cleaning dump-*.rdb Cleaning nodes-*.conf 高频踩坑现象-原因-解法端口冲突排查Address already in use现象执行start后节点起不来{port}.log报Could not create server TCP listening socket ... Address already in use。原因30001-30006 被其他进程占用。解法脚本会自动加载同目录config.sh并覆盖默认值用它换端口即可无需改脚本本身echo PORT40000 config.sh # 覆盖基础端口为 40000 ./create-cluster start节点连不上Connection refused现象start跑完valkey-cli -p 30001 ping报Could not connect to Redis at 127.0.0.1:30001: Connection refused。原因多为上次异常退出留下的损坏数据文件或当前用户对可执行文件/目录无读写权限。解法清数据后重新拉起./create-cluster clean ./create-cluster start写入报 CLUSTERDOWN槽位未覆盖现象set返回CLUSTERDOWN Hash slot not covered。原因只执行了start没执行create16384 个哈希槽尚未分配也可能是负责槽位的主节点宕机后未故障转移。解法补跑创建命令分配槽位./create-cluster create -f下一步往哪走性能调优基于 valkey.conf 模板定制maxmemory、淘汰策略等参数替换脚本内的默认启动参数监控集成接入 Prometheus Grafana把哈希槽覆盖数、内存水位、慢日志纳入告警自动化编排用 Ansible 或 Kubernetes 管理多节点扩容、缩容与灾备切换跑通这套 create-cluster 流程后你就手里攥着一个随时可用的实验集群——扩容、迁移、故障演练这些更有意思的事情可以直接在它上面动手。【免费下载链接】placeholderkvA flexible distributed key-value database that is optimized for caching and other realtime workloads.项目地址: https://gitcode.com/GitHub_Trending/pl/placeholderkv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考