Valkey 集群 5 条命令铺满 3 主 3 从:create-cluster 快速上手

发布时间:2026/9/4 14:42:30
Valkey 集群 5 条命令铺满 3 主 3 从:create-cluster 快速上手 Valkey 集群 5 条命令铺满 3 主 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 节点再铺 3 主 3 从要写 6 份 conf、对 6 个端口、最后还得对着--cluster create的 6 个地址拼参数拼错一个字符就前功尽弃。本文用仓库自带的utils/create-cluster/create-cluster脚本在约 3 分钟内把一条可读写、带复制的 Valkey 集群跑起来最后连清理都一条命令收尾。能力速览create-cluster本质是 bash 对valkey-server和valkey-cli的薄封装子命令一览完整清单见./create-cluster不带参数时的输出源码在 utils/create-cluster/create-cluster子命令一句话作用典型场景start/create [-f]批量拉起节点 / 执行--cluster create铺拓扑从零搭集群watch每秒刷新首节点的CLUSTER NODES前 30 行盯着主从和槽位状态tail id/tailall看第 N 个节点日志 / 全部日志出问题时定位stop/restart/call cmd停机、重启、对全节点批量发命令日常维护clean/clean-logs删 AOF、RDB、conf 与日志推倒重来动手前检查 src/下已有valkey-server和valkey-cli即仓库根目录执行过make编译细节见 README.md30001–30006 这 6 个 TCP 端口空闲否则第一个节点就起不来脚本必须在该目录下运行因为nodes-*.conf、日志、AOF 全部落在当前目录valkey-server路径硬编码为../../src/脚本头部默认PORT30000实例落在 30001–30006、NODES6、REPLICAS1、CLUSTER_HOST127.0.0.1。不想改脚本的话在当前目录放一个config.sh覆盖即可最小示例# utils/create-cluster/config.sh PORT40000 NODES6 REPLICAS1其余可调参数TIMEOUT、PROTECTED_MODE、ADDITIONAL_OPTIONS见 utils/create-cluster/README。操作主链路拉起 6 个集群实例cd utils/create-cluster ./create-cluster start你应当看到 6 行Starting 30001…Starting 30006。此时目录里多出30001.log…30006.log、nodes-30001.conf… 和 AOF 目录。每个实例带着--cluster-enabled yes --appendonly yes --daemonize yes在后台跑AOF 默认开启后面随手stop也不会丢数据。一条命令铺好 3 主 3 从./create-cluster create -f-f对应valkey-cli的--cluster-yes跳过交互确认。你应当看到 16384 个哈希槽把 key 的 CRC16 对 16384 取模得到的槽位编号被均分到 3 个主节点每个槽段后面跟着- 另一个ip:port的复制关系结尾出现Cluster created之类的成功提示。注意CLUSTER_HOST默认写死127.0.0.1如果你是在容器里访问这套节点先改它在config.sh。写入一个 key 验证自动重定向../../src/valkey-cli -c -p 30001 set mykey hello ../../src/valkey-cli -c -p 30001 get mykey-c让客户端以集群模式连接。你应当看到- Redirected to slot [xxxx] located at 127.0.0.1:300xx说明 key 按哈希槽被路由到了负责的主节点随后get原样返回hello。每秒刷一次集群拓扑./create-cluster watch你应当看到时间戳加CLUSTER NODES前 30 行每秒刷新mymaster、slave、connected和槽段一目了然。这里有个小坑它固定只看第一个节点PORT1不是轮询 6 个节点想看全用./create-cluster call cluster info。按 CtrlC 退出。停机与清空./create-cluster stop ./create-cluster cleanstop对 6 个端口依次shutdown nosaveclean删除*.log、appendonlydir-*、dump-*.rdb、nodes-*.conf。跑完目录恢复干净再start就是全新环境。排错速查 Address already in use→ 根因30001–30006 端口段被占用 → 处置ss -ltnp | grep 3000找到占用者config.sh里换PORT或释放端口后重来create阶段节点连不上 / 拓扑建一半→ 根因实例没起来或CLUSTER_HOST与节点实际监听地址不符 → 处置./create-cluster tailall看日志对照config.sh里的CLUSTER_HOST修正重启后写入报集群不可用→ 根因restart只重启进程槽位拓扑存在nodes-*.conf里而clean把这些 conf 删了进程起来后等于空集群 → 处置确认nodes-*.conf还在后重新./create-cluster create -f只想要干净日志别动数据→ 根因clean会连 AOF 和 RDB 一起删 → 处置改用./create-cluster clean-logs机制一句话脚本只做一件事循环端口区间把进程、日志、AOF、nodes-*.conf按实例编号生成在同一个目录。拓扑和数据解耦conf 文件单独删集群就能原地重建ADDITIONAL_OPTIONS透传给每个valkey-server不动脚本也能追加启动参数REPLICAS决定每个主节点的从节点数配合NODES控制主从比例延伸出口想搞懂跨节点搬数据时槽位如何原子切换design-docs/atomic-slot-migration.md回归测试集群行为参考tests/integration/给集群加并发能力design-docs/io-threads.md【免费下载链接】placeholderkvA flexible distributed key-value database that is optimized for caching and other realtime workloads.项目地址: https://gitcode.com/GitHub_Trending/pl/placeholderkv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考