macOS 系统部署 Valkey 集群模式

两年多前记录了一篇博客《macOS 系统安装 Redis 并启用集群模式》,本机使用 bash 脚本启动多个 Redis 实例组成集群,操作较为繁琐

整理了基于 macOS Docker 的 Valkey 的本地集群部署方式,记录如下:

获取配置

创建本地目录并获取配置

$ mkdir -p ~/Portable & cd ~/Portable
$ git clone https://github.com/sincerefly/conf-valkey-cluster.git

添加权限

$ cd conf-valkey-cluster
$ chmod +x ./init.sh

运行服务

初始化并运行,默认镜像 valkey/valkey:7.2-alpine

# valkey/valkey:7.2-alpine
$ ./init.sh

# valkey/valkey:9.0-alpine
$ VALKEY_IMAGE=8.0-alpine ./init.sh

稍等片刻可以看到

[2025-10-30 19:29:08] Cluster is healthy
[2025-10-30 19:29:08] Valkey cluster initialized successfully!
[2025-10-30 19:29:08] Cluster nodes:
940fbd29e31707348db33d030ec40ec927c13712 192.168.97.2:7001@17001 master - 0 1761823748351 2 connected 5461-10922
5a74931fdf31a55eebfea8f0fb04cde5c50bce0a 192.168.97.5:7002@17002 master - 0 1761823747118 3 connected 10923-16383
9c49963d7285875867c86e3f033c279bce6a951f 192.168.97.3:7004@17004 slave efe7608d5a60031d02f3d239d5cc06aa8bfa2708 0 1761823747941 1 connected
290e3d428b7df6511fabee0b1510d1ab4ebac8e9 192.168.97.6:7003@17003 slave 5a74931fdf31a55eebfea8f0fb04cde5c50bce0a 0 1761823747000 3 connected
3882a00169987d638b1a628f38e8d00c328873aa 192.168.97.7:7005@17005 slave 940fbd29e31707348db33d030ec40ec927c13712 0 1761823746906 2 connected
efe7608d5a60031d02f3d239d5cc06aa8bfa2708 192.168.97.4:7000@17000 myself,master - 0 1761823746000 1 connected 0-5460

连接测试

如果你未使用 OrbStack,可以这样获取 IP 地址

$ docker inspect valkey-7000 | grep IPAddress
"Secondary**IPAddress**es": null,
"**IPAddress**": "",
    "**IPAddress**": "192.168.97.6",

使用 OrbStack 软件

01.webp

点选其中一个容器,在右侧可以看到其 IP 地址为 192.168.97.6,以及 Domain(valkey-7000.valkey-cluster-72.orb.local)可以用于连接集群

$ redis-cli -c -h valkey-7000.valkey-cluster-72.orb.local -p 7000 ping
PONG

# or ip
$ redis-cli -c -h 192.168.97.6 -p 7000 ping

查询集群信息

> CLUSTER INFO

02.webp

服务启停

# 停止
# VALKEY_IMAGE=valkey/valkey:7.2-alpine docker compose down
$ ./stop.sh

# 启动
# VALKEY_IMAGE=valkey/valkey:7.2-alpine docker compose up -d
$ ./start.sh

# 如果使用了 ENV 需要
VALKEY_IMAGE=9.0-alpine ./start.sh
VALKEY_IMAGE=9.0-alpine ./stop.sh

先这样,目前我用着还比较顺手,有时间可以再进行一些更通用化的完善