部署Redis Sentinel
如未指定,下述命令在所有节点执行!
一、YUM方式部署Redis Sentinel
1、系统资源规划
节点名称 | 系统名称 | CPU/内存 | 网卡 | 磁盘 | IP地址 | OS |
---|---|---|---|---|---|---|
Master | master | 2C/4G | ens33 | 128G | 192.168.0.10 | CentOS7 |
Slave1 | slave1 | 2C/4G | ens33 | 128G | 192.168.0.11 | CentOS7 |
Slave2 | slave2 | 2C/4G | ens33 | 128G | 192.168.0.12 | CentOS7 |
2、系统软件安装
yum -y install vim wget epel-release
3、设置SELinux、防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
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
5、设置NTP
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd
chronyc sources
6、部署Redis
安装Redis:
yum -y install redis
修改Master节点Redis配置文件/etc/redis.conf:
# bind 127.0.0.1
protected-mode no
daemonize yes
修改Slave节点Redis配置文件/etc/redis.conf:
# bind 127.0.0.1
protected-mode no
daemonize yes
slaveof 192.168.0.11 6379
依次启动Master和Slave节点的Redis,并设置自启动:
systemctl start redis
systemctl enable redis
systemctl status redis
在Master节点上查看Redis集群状态:
redis-cli info replication
7、部署Redis Sentinel
修改所有节点Redis Sentinel配置文件/etc/redis-sentinel.conf:
protected-mode no
dir /var/lib/redis
sentinel monitor mymaster 192.168.0.10 6379 2
启动Redis Sentinel,并设置自启动:
systemctl start redis-sentinel
systemctl enable redis-sentinel
systemctl status redis-sentinel
在任意节点上查看Redis Sentinel状态:
redis-cli -p 26379 info
8、验证Redis Sentinel
关闭Master节点或者停止Master节点Redis服务,并等待30秒左右:
在Slave节点上查看Redis集群状态:
redis-cli info replication
在任意节点上查看Redis Sentinel状态:
redis-cli -p 26379 info
二、二进制方式部署Redis Sentinel
1、系统资源规划
节点名称 | 系统名称 | CPU/内存 | 网卡 | 磁盘 | IP地址 | OS |
---|---|---|---|---|---|---|
Master | master | 2C/4G | ens33 | 128G | 192.168.0.10 | CentOS7 |
Slave1 | slave1 | 2C/4G | ens33 | 128G | 192.168.0.11 | CentOS7 |
Slave2 | slave2 | 2C/4G | ens33 | 128G | 192.168.0.12 | CentOS7 |
2、系统软件安装
yum -y install vim wget gcc-c++
3、设置SELinux、防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
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
5、设置NTP
yum -y install chrony
systemctl start chronyd
systemctl enable chronyd
systemctl status chronyd
chronyc sources
6、部署Redis
下载Redis二进制安装包:
wget https://download.redis.io/releases/redis-6.2.2.tar.gz
解压并编译Redis:
tar -xf /root/redis-6.2.2.tar.gz -C /root/
cd redis-6.2.2
make
make install PREFIX=/usr/local/redis
添加Redis用户:
groupadd redis
useradd -r -g redis -s /bin/false redis
创建Redis配置文件目录、工作目录和日志目录:
mkdir /etc/redis
mkdir /var/lib/redis
mkdir /var/log/redis
将配置文件拷贝至配置文件目录:
cp /root/redis-6.2.2/{redis.conf,sentinel.conf} /etc/redis/
修改配置文件目录、工作目录和日志目录权限:
chown -R redis:redis /etc/redis
chown -R redis:redis /var/lib/redis
chown -R redis:redis /var/log/redis
添加环境变量:
echo PATH=$PATH:/usr/local/redis/bin/ >> /etc/profile
source /etc/profile
修改Master节点Redis配置文件/etc/redis.conf:
# bind 127.0.0.1 -::1
protected-mode no
daemonize yes
logfile /var/log/redis/redis.log
dir /var/lib/redis
修改Slave节点Redis配置文件/etc/redis.conf:
# bind 127.0.0.1 -::1
protected-mode no
daemonize yes
logfile /var/log/redis/redis.log
dir /var/lib/redis
echo slaveof 192.168.0.10 6379 >> /etc/redis/redis.conf
配置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
启动Redis,并设置自启动:
systemctl start redis
systemctl enable redis
systemctl status redis
在Master节点上查看Redis集群状态:
redis-cli info replication
7、部署Redis Sentinel
修改所有节点Redis Sentinel配置文件/etc/redis-sentinel.conf:
protected-mode no
daemonize yes
logfile /var/log/redis/redis-sentinel.log
dir /var/lib/redis
sentinel monitor mymaster 192.168.0.10 6379 2
配置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
启动Redis Sentinel,并设置自启动:
systemctl start redis-sentinel
systemctl enable redis-sentinel
systemctl status redis-sentinel
在Master节点上查看Redis集群状态:
redis-cli info replication
在任意节点上查看Redis Sentinel状态:
redis-cli -p 26379 info
8、验证Redis Sentinel
关闭Master节点或者停止Master节点Redis服务,并等待30秒左右:
在Slave节点上查看Redis集群状态:
redis-cli info replication
在任意节点上查看Redis Sentinel状态:
redis-cli -p 26379 info