安装 Redis
$ brew install redis
集群模式初始化
# 创建文件夹,我放在了用户目录的 Portable 目录下
mkdir ~/Portable && cd ~/Portable
mkdir -p redis-cluster/{7000..7005}
# 复制几份配置文件供集群实例使用
for port in {7000..7005}; do
cp /opt/homebrew/etc/redis.conf redis-cluster/$port
done
# 为配置文件追加集群相关配置
for port in {7000..7005}; do
cat >> redis-cluster/$port/redis.conf <<EOF
port $port
cluster-enabled yes
cluster-config-file nodes-$port.conf
cluster-node-timeout 5000
appendonly yes
EOF
done
# 启动实例
for port in {7000..7005}; do
redis-server redis-cluster/$port/redis.conf --daemonize yes --pidfile /tmp/redis-cluster-$port.pid
done
# 初始化
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 \
127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1 < <(yes "yes")
连接 Redis 集群
redis-cli -c -p 7000
-c
参数开启集群模式-p
参数指定连接的端口
使用 INFO CLUSTER
命令可以查看 Redis 是否是在集群模式运行
127.0.0.1:7000> info cluster
# Cluster
cluster_enabled:1
启动集群
for port in {7000..7005}; do
redis-server redis-cluster/$port/redis.conf --daemonize yes --pidfile /tmp/redis-cluster-$port.pid
done
停止集群
for port in {7000..7005}; do
kill `cat /tmp/redis-cluster-$port.pid`
done
通过 kill 杀进程有些暴力,建议使用 shutdown
指令。
for port in {7000..7005}; do
redis-cli -p $port shutdown
done
补充
使用 lsof -i:7000
可以在 macOS 下查看端口占用情况
查找 redis 进程可以使用 ps aux | grep redis
2023-08-21 更新
有时候可能需要低版本的 Redis 对旧项目/库进行测试,对 Redis 6.x 版本进行补充如下
如果是从 7.x 版本降级安装,需要线删除 rdb 文件,路径在: /opt/homebrew/var/db/redis/ 下,没有需要备份的数据删除即可
安装 6.x 版本的 Redis
$ brew install redis@6.2
其它脚本也需要简单变更,redis-cluster 改为 redis-cluster-6,其它不变
启动后,可以通过 info server
查看版本信息,已降级成功
127.0.0.1:7000> info server
# Server
redis_version:6.2.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:f341e7c1f9d51bff
redis_mode:cluster
os:Darwin 22.1.0 arm64
arch_bits:64
...