10分钟搭好 Valkey 集群:create-cluster 从启动到读写验证 10分钟搭好 Valkey 集群create-cluster 从启动到读写验证【免费下载链接】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 脚本跑一遍约10分钟能在一台机器上得到一个 3 主 3 从、共 6 节点的集群。16384 个哈希槽全部分配完毕集群立即可读写。全程只做三件事启动、创建、验证。先判断再动手适合单机验证集群行为、复现需要多节点的 bug、熟悉 Valkey 集群的读写与重定向机制。utils/create-cluster/README 写明目标就是这类手动测试。不适合多机生产部署。脚本默认把CLUSTER_HOST固定在127.0.0.1数据文件也全部落在脚本当前目录。前置硬性要求必须从源码构建。脚本通过BIN_PATH直接调用src/valkey-server和src/valkey-cli包管理器装的二进制它找不到。准备清单仓库代码git clone https://gitcode.com/GitHub_Trending/pl/placeholderkv编译环境make与 C 编译器在仓库根目录执行make见 README 的 Building 一节。端口默认占用 30001 到 30006由PORT30000与NODES6决定ENDPORTPORTNODES。bash 环境。脚本同目录若存在config.sh会自动加载可用来覆盖默认参数而不动脚本本体。操作流程1. 构建两个二进制做什么编译出脚本依赖的服务端与命令行工具。make看到什么src/目录下出现valkey-server和valkey-cli两个可执行文件。缺任意一个后续步骤都会报 command not found。2. 启动 6 个节点做什么用 start 子命令拉起 6 个后台节点。utils/create-cluster/create-cluster start看到什么Starting 30001 ... Starting 30006每个节点都开了集群模式与 AOF--daemonize yes表示后台运行。日志按端口写进当前目录的{port}.log。3. 创建集群架构做什么把 6 个节点组织成 3 主 3 从。utils/create-cluster/create-cluster create -f-f会翻译成--cluster-yes跳过交互确认适合脚本化执行。看到什么终端逐行打印 3 个主节点各自拿到的槽位区间最后一行是Ready to accept requests。没看到这行就说明创建失败看报错行定位。4. 集群模式下读写一次做什么通过任意节点写入并读回一个键。src/valkey-cli -c -p 30001 set demo-key hello看到什么槽位号随键变化此处仅为示例值- Redirected to slot [637] located at 127.0.0.1:30005 OK-c开启集群模式客户端收到重定向后自动转发。接着执行src/valkey-cli -c -p 30001 get demo-key返回hello即闭环。验证是否成功执行utils/create-cluster/create-cluster watch它轮询首个节点的cluster nodes每秒刷新一次。通过标准能看到 6 个节点且没有任何节点带 failing 标记。按 CtrlC 退出。执行src/valkey-cli -p 30001 cluster info。通过标准cluster_state:ok且cluster_slots_assigned:16384说明槽位无缺口。执行utils/create-cluster/create-cluster call dbsize它对全部 6 个节点依次执行 dbsize。通过标准6 个节点都返回整数其中做过写入的节点数值不小于 1。避坑手册现象启动时报bind: Address already in use。原因30001 到 30006 已被本机其他服务占用。处理在脚本目录新建config.sh写入一行PORT31000换起始端口脚本会自动加载它不用改源码。现象create执行后卡在确认提示不往下走。原因漏了-f默认走交互确认。处理补上-f重新执行。现象节点起来了但cluster_state一直是fail。原因CLUSTER_HOST默认为127.0.0.1README 提示在本地容器场景要改成宿主机可达的 IP。处理改CLUSTER_HOST后重新 start 加 create。现象stop 之后再次 start行为怪异、槽位和旧数据打架。原因上次的 dump、AOF、nodes 配置还留在目录里。处理utils/create-cluster/create-cluster clean它会清掉*.log、appendonlydir-*、dump-*.rdb、nodes-*.conf。一分钟原理Valkey 集群按哈希槽分数据键的哈希值对 16384 取模决定它属于哪个槽。create把 16384 个槽切成三段分给 3 个主节点另 3 个节点作各自的主从副本。节点之间靠 Gossip 协议交换成员信息cluster-node-timeout脚本默认 2000 毫秒是故障判定的阈值细节以官方文档为准。收尾与进阶这个集群只适合实验用完执行utils/create-cluster/create-cluster clean清场即可。生产部署请按节点独立配置参考 valkey.conf。想深入集群内部可看仓库里的两份设计文档design-docs/atomic-slot-migration.md 讲槽迁移design-docs/io-threads.md 讲 IO 线程。【免费下载链接】placeholderkvA flexible distributed key-value database that is optimized for caching and other realtime workloads.项目地址: https://gitcode.com/GitHub_Trending/pl/placeholderkv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考