部署Redis Sentinel

1,119 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

如未指定,下述命令在所有节点执行!

一、YUM方式部署Redis Sentinel

1、系统资源规划

节点名称系统名称CPU/ 内存网卡磁盘IP 地址OS
Mastermaster2C/4Gens33128G192.168.0.10CentOS7
Slave1slave12C/4Gens33128G192.168.0.11CentOS7
Slave2slave22C/4Gens33128G192.168.0.12CentOS7

2、系统软件安装

yum -y install vim wget epel-release

image.png

3、设置SELinux、防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

image.png

4、设置域名解析

echo 192.168.0.10 master >> /etc/hosts
echo 192.168.0.11 slave1 >> /etc/hosts
echo 192.168.0.12 slave2 >> /etc/hosts

image.png

5、设置NTP

yum -y install chrony

image.png

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

image.png

chronyc sources

image.png

6、部署Redis

安装Redis:

yum -y install redis

image.png

修改Master节点Redis配置文件/etc/redis.conf:

# bind 127.0.0.1

image.png

protected-mode no

image.png

daemonize yes

image.png

修改Slave节点Redis配置文件/etc/redis.conf:

# bind 127.0.0.1

image.png

protected-mode no

image.png

daemonize yes

image.png

slaveof 192.168.0.11 6379

image.png 依次启动Master和Slave节点的Redis,并设置自启动:

systemctl start redis
systemctl enable redis
systemctl status redis

image.png

在Master节点上查看Redis集群状态:

redis-cli info replication

image.png

7、部署Redis Sentinel

修改所有节点Redis Sentinel配置文件/etc/redis-sentinel.conf:

protected-mode no

image.png

dir /var/lib/redis

image.png

sentinel monitor mymaster 192.168.0.10 6379 2

image.png

启动Redis Sentinel,并设置自启动:

systemctl start redis-sentinel
systemctl enable redis-sentinel
systemctl status redis-sentinel

  image.png

在任意节点上查看Redis Sentinel状态:

redis-cli -p 26379 info

image.png

8、验证Redis Sentinel

关闭Master节点或者停止Master节点Redis服务,并等待30秒左右:

在Slave节点上查看Redis集群状态:

redis-cli info replication

image.png

  image.png

在任意节点上查看Redis Sentinel状态:

redis-cli -p 26379 info

image.png

二、二进制方式部署Redis Sentinel

1、系统资源规划

节点名称****系统名称****CPU/ 内存****网卡****磁盘****IP 地址****OS
Mastermaster2C/4Gens33128G192.168.0.10CentOS7
Slave1slave12C/4Gens33128G192.168.0.11CentOS7
Slave2slave22C/4Gens33128G192.168.0.12CentOS7

2、系统软件安装

yum -y install vim wget gcc-c++

image.png

3、设置SELinux、防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

image.png

4、设置域名解析

echo 192.168.0.10 master >> /etc/hosts
echo 192.168.0.11 slave1 >> /etc/hosts
echo 192.168.0.12 slave2 >> /etc/hosts

image.png

5、设置NTP

yum -y install chrony

image.png

systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd

image.png

chronyc sources

image.png

6、部署Redis

下载Redis二进制安装包:

wget https://download.redis.io/releases/redis-6.2.2.tar.gz

image.png

解压并编译Redis:

tar -xf /root/redis-6.2.2.tar.gz -C /root/
cd redis-6.2.2

image.png

make

image.png

make install PREFIX=/usr/local/redis

image.png

添加Redis用户:

groupadd redis
useradd -r -g redis -s /bin/false redis

image.png

创建Redis配置文件目录、工作目录和日志目录:

mkdir /etc/redis
mkdir /var/lib/redis
mkdir /var/log/redis

image.png

将配置文件拷贝至配置文件目录:

cp /root/redis-6.2.2/{redis.conf,sentinel.conf} /etc/redis/

image.png

修改配置文件目录、工作目录和日志目录权限:

chown -R redis:redis /etc/redis
chown -R redis:redis /var/lib/redis
chown -R redis:redis /var/log/redis

image.png

添加环境变量:

echo PATH=$PATH:/usr/local/redis/bin/ >> /etc/profile
source /etc/profile

image.png

修改Master节点Redis配置文件/etc/redis.conf:

# bind 127.0.0.1 -::1

image.png

protected-mode no

image.png

daemonize yes

image.png

logfile /var/log/redis/redis.log

image.png

dir /var/lib/redis

image.png

修改Slave节点Redis配置文件/etc/redis.conf:

# bind 127.0.0.1 -::1

image.png

protected-mode no

image.png

daemonize yes

image.png

logfile /var/log/redis/redis.log

image.png

dir /var/lib/redis

image.png

echo slaveof 192.168.0.10 6379 >> /etc/redis/redis.conf

image.png

配置systemd管理Redis:

cat > /usr/lib/systemd/system/redis.service << EOF
[Unit]
Description=Redis persistent key-value database
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf
User=redis
Group=redis
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target
EOF

image.png

启动Redis,并设置自启动:

systemctl start redis
systemctl enable redis
systemctl status redis

image.png

在Master节点上查看Redis集群状态:

redis-cli info replication

image.png

7、部署Redis Sentinel

修改所有节点Redis Sentinel配置文件/etc/redis-sentinel.conf:

protected-mode no

image.png

daemonize yes

image.png

logfile /var/log/redis/redis-sentinel.log

image.png

dir /var/lib/redis

image.png

sentinel monitor mymaster 192.168.0.10 6379 2

image.png

配置systemd管理Redis Sentinel:

 

cat > /usr/lib/systemd/system/redis-sentinel.service << EOF
[Unit]
Description=Redis Sentinel
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-sentinel /etc/redis/sentinel.conf
User=redis
Group=redis
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

image.png

启动Redis Sentinel,并设置自启动:

systemctl start redis-sentinel
systemctl enable redis-sentinel
systemctl status redis-sentinel

image.png

在Master节点上查看Redis集群状态:

redis-cli info replication

image.png

在任意节点上查看Redis Sentinel状态:

redis-cli -p 26379 info

image.png

8、验证Redis Sentinel

关闭Master节点或者停止Master节点Redis服务,并等待30秒左右:

在Slave节点上查看Redis集群状态:

redis-cli info replication

image.png

image.png

在任意节点上查看Redis Sentinel状态:

redis-cli -p 26379 info

image.png