以下是一套完整的 Redis 5.0.5 版本的 1 主 2 从 3 哨兵的部署方案。此方案假设你使用的是 Linux 系统(以 CentOS 7 为例)。
1. 环境准备
确保服务器已经安装了必要的依赖,如 gcc
和 make
,可以使用以下命令进行安装:
yum install -y gcc make
2. 下载并编译 Redis 5.0.5
# 下载 Redis 5.0.5
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
# 解压文件
tar xzf redis-5.0.5.tar.gz
# 进入解压后的目录
cd redis-5.0.5
# 编译 Redis
make
# 安装 Redis
make install
3. 配置 Redis 主从节点
主节点配置
创建主节点的配置文件 redis-master.conf
:
mkdir -p /etc/redis
cat <<EOF > /etc/redis/redis-master.conf
port 6379
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis-master.pid
logfile /var/log/redis-master.log
dbfilename dump-master.rdb
dir /var/lib/redis
EOF
启动主节点:
redis-server /etc/redis/redis-master.conf
从节点配置
创建两个从节点的配置文件 redis-slave1.conf
和 redis-slave2.conf
。
redis-slave1.conf
:
cat <<EOF > /etc/redis/redis-slave1.conf
port 6380
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis-slave1.pid
logfile /var/log/redis-slave1.log
dbfilename dump-slave1.rdb
dir /var/lib/redis
slaveof <主节点 IP> 6379
EOF
redis-slave2.conf
:
cat <<EOF > /etc/redis/redis-slave2.conf
port 6381
bind 0.0.0.0
daemonize yes
pidfile /var/run/redis-slave2.pid
logfile /var/log/redis-slave2.log
dbfilename dump-slave2.rdb
dir /var/lib/redis
slaveof <主节点 IP> 6379
EOF
分别启动两个从节点:
redis-server /etc/redis/redis-slave1.conf
redis-server /etc/redis/redis-slave2.conf
4. 配置 Redis 哨兵节点
创建三个哨兵节点的配置文件 sentinel1.conf
、sentinel2.conf
和 sentinel3.conf
。
sentinel1.conf
:
cat <<EOF > /etc/redis/sentinel1.conf
port 26379
daemonize yes
pidfile /var/run/redis-sentinel1.pid
logfile /var/log/redis-sentinel1.log
sentinel monitor mymaster <主节点 IP> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
EOF
sentinel2.conf
:
cat <<EOF > /etc/redis/sentinel2.conf
port 26380
daemonize yes
pidfile /var/run/redis-sentinel2.pid
logfile /var/log/redis-sentinel2.log
sentinel monitor mymaster <主节点 IP> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
EOF
sentinel3.conf
:
cat <<EOF > /etc/redis/sentinel3.conf
port 26381
daemonize yes
pidfile /var/run/redis-sentinel3.pid
logfile /var/log/redis-sentinel3.log
sentinel monitor mymaster <主节点 IP> 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel parallel-syncs mymaster 1
EOF
分别启动三个哨兵节点:
redis-sentinel /etc/redis/sentinel1.conf
redis-sentinel /etc/redis/sentinel2.conf
redis-sentinel /etc/redis/sentinel3.conf
5. 验证部署
可以使用以下命令验证 Redis 主从和哨兵的部署情况:
验证主从节点
redis-cli -p 6379 info replication
redis-cli -p 6380 info replication
redis-cli -p 6381 info replication
验证哨兵节点
redis-cli -p 26379 sentinel masters
redis-cli -p 26380 sentinel masters
redis-cli -p 26381 sentinel masters
注意事项
- 请将
<主节点 IP>
替换为实际的主节点 IP 地址。 - 可以根据实际情况调整配置文件中的参数,如端口号、日志文件路径等。
- 在生产环境中,建议为 Redis 配置密码以增强安全性。可以在配置文件中添加
requirepass
参数来设置密码。