Redis 集群单机一键部署
1. Redis 集群单机一键部署
1.1. 版本说明
| 构件 | 版本 |
|---|---|
| 操作系统 | Debian 12 (bookworm) |
| Redis | 7.0.15 |
1.2. 节点说明
| 节点 IP:端口 | 角色 |
|---|---|
| 10.211.55.16:7001 | Master |
| 10.211.55.16:7002 | Master |
| 10.211.55.16:7003 | Master |
| 10.211.55.16:7004 | Slave |
| 10.211.55.16:7005 | Slave |
| 10.211.55.16:7006 | Slave |
1.3. 脚本说明
.
├── init.sh # 创建 Redis 集群
├── shutdown.sh # 关闭 Redis 集群
└── startup.sh # 启动 Redis 集群
1.4. 一键创建 Redis 集群
执行init.sh脚本创建并运行集群:
bash init.sh
Redis 集群创建好之后,就可以通过shutdown.sh和startup.sh两个脚本分别来关闭和启动集群。
以下为脚本内容:
#!/bin/bash
# 密码
PASSWORD=123456
# Redis 集群配置文件、数据文件所在目录
BASE_DIR=$(pwd)
# 节点数量
NODE_COUNT=6
# 所有节点信息
NODES=""
# 服务器 IP
IP="10.211.55.16"
for ((i=1; i<=$NODE_COUNT; ++i))
do
# 节点端口,7001 - 7006
PORT=$(expr 7000 + $i)
# 创建存放配置文件、数据文件的目录
mkdir -p redis-node-$i/{config,data}
# 为每个节点创建 redis.conf 配置文件
bash -c "echo '
# 端口
port $PORT
# 作为守护进程运行(后台运行)
daemonize yes
# 日志文件
logfile redis.log
# 数据、日志存放目录
dir $BASE_DIR/redis-node-$i/data
# 密码
requirepass $PASSWORD
# 允许远程访问
protected-mode no
# 接受任务 IP 地址连接
bind 0.0.0.0
# 开启 AOF 持久化
appendonly yes
# 开启集群模式
cluster-enabled yes
# 集群信息文件
cluster-config-file nodes.conf
# 主节点密码,从节点同步主节点数据需要认证
masterauth $PASSWORD
' > redis-node-$i/config/redis.conf";
NODES="$NODES $IP:$PORT"
# 启动 Redis 节点
redis-server $BASE_DIR/redis-node-$i/config/redis.conf
done
# 创建 Redis 集群,节点副本数量为 1,即 3 主 3 从
redis-cli --cluster create $NODES --cluster-replicas 1 -a $PASSWORD
1.5. 一键关闭 Redis 集群
执行shutdown.sh脚本关闭集群:
bash shutdown.sh
以下为脚本内容:
#!/bin/bash
# 节点数量
NODE_COUNT=6
# 密码
PASSWORD=123456
# 服务器 IP
IP="10.211.55.16"
for ((i=1; i<=$NODE_COUNT; ++i))
do
# 节点端口,7001 - 7006
PORT=$(expr 7000 + $i)
# 在每个节点执行 shutdown 命令
redis-cli -h $IP -p $PORT -a $PASSWORD shutdown save
done
1.6. 一键启动 Redis 集群
执行startup.sh脚本启动集群:
bash startup.sh
以下为脚本内容:
#!/bin/bash
# 节点数量
NODE_COUNT=6
# Redis 集群配置文件、数据文件所在目录
BASE_DIR=$(pwd)
for ((i=1; i<=$NODE_COUNT; ++i))
do
# 启动 Redis 节点
redis-server $BASE_DIR/redis-node-$i/config/redis.conf
done
1.7. 查看 Redis 集群信息
通过cluster nodes命令查看节点信息:
redis-cli -h 10.211.55.16 -p 7001 -a 123456 cluster nodes
16ef28beefe521ef0da0b1a6d68bee310369c4d3 10.211.55.16:7001@17001 myself,master - 0 1718691858000 1 connected 0-5460
1ef72d928ea2d0471a6856daeb4ec434a1af6191 10.211.55.16:7003@17003 master - 0 1718691858000 3 connected 10923-16383
bf6037bf2b8b47e2e837ad18e1cea8c56680ef53 10.211.55.16:7002@17002 master - 0 1718691856159 2 connected 5461-10922
b10c5d0478dbb1d7d91371256a143ef5fdb64f00 10.211.55.16:7006@17006 slave 1ef72d928ea2d0471a6856daeb4ec434a1af6191 0 1718691857192 3 connected
3c1cc09b2d83eba2603de19d04e8d65f82f6f558 10.211.55.16:7005@17005 slave bf6037bf2b8b47e2e837ad18e1cea8c56680ef53 0 1718691858215 2 connected
aad76d0575f7f62ae2462c0a0d0a4b1d21070601 10.211.55.16:7004@17004 slave 16ef28beefe521ef0da0b1a6d68bee310369c4d3 0 1718691859239 1 connected
本文来自博客园,作者:Jason,转载请注明原文链接:https://www.cnblogs.com/jason207010/p/18254359
浙公网安备 33010602011771号