目录
一、Redis主从复制的搭建
1、环境准备
2、所有安装redis
?3、修改Master节点
?4、修改slave节点Redis配置文件(slave1和slave2配置相同)
?5、验证主从效果
在master节点上看日志
?在Master节点上验证从节点
?主节点创建数据验证
?二、哨兵模式的部署
1、修改Redis 哨兵模式的配置文件(所有节点操作)
?2、启动哨兵模式
?3、查看哨兵信息
?4、故障模拟
?5、恢复过程
6、小结
三、Redis集群模式部署
一、Redis主从复制的搭建
1、环境准备
master节点:192.168.127.130
slave1节点:192.168.127.140
slave2节点:192.168.127.188
2、所有安装redis
一键部署redis脚本
#!/bin/bash
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#安装环境
yum -y install gcc gcc-c++ make
#解压
cd /opt
tar -zxvf redis-5.0.7.tar.gz
#编译
cd /opt/redis-5.0.7/
make
make PREFIX=/usr/local/redis install
#安装redis服务
cd /opt/redis-5.0.7/utils
yum -y install expect
/usr/bin/expect <<EOF
spawn ./install_server.sh
expect "instance" {send "\r"}
expect "config" {send "\r"}
expect "log" {send "\r"}
expect "this" {send "\r"}
expect "path" {send "/usr/local/redis/bin/redis-server\r"}
expect "abort" {send "\r"}
expect eof
EOF
#创建软链接,方便启动
ln -s /usr/local/redis/bin/* /usr/local/bin
#修改配置文件
ip=`ifconfig ens33 |awk '/netmask/{print $2}'`
sed -i "s/bind 127.0.0.1/bind 127.0.0.1 $ip/" /etc/redis/6379.conf
#启动redis
/etc/init.d/redis_6379 restart
#查看是否开启
netstat -natp |grep redis
if [ $? -eq 0 ];then
echo "redis 已安装完成并启动"
else
echo "redis 未启动,请检查"
fi
?
?3、修改Master节点
?
vim /etc/redis/6379.conf
bind 0.0.0.0 #70行,修改bind 项,0.0.0.0监听所有网段
daemonize yes #137行,开启守护进程
logfile /var/log/redis_6379.log #172行,指定日志文件目录
dir /var/lib/redis/6379 #264行,指定工作目录
appendonly yes #700行,开启AOF持久化功能
/etc/init.d/redis_6379 restart
?4、修改slave节点Redis配置文件(slave1和slave2配置相同)
vim /etc/redis/6379.conf #配置文件位置
70 bind 0.0.0.0 #修改监听地址
137 daemonize yes #开启守护进程
172 logfile /var/log/redis_6379.log #指定日志文件目录
264 dir /var/lib/redis/6379 #指定工作目录
288 replicaof 192.168.127.130 6379 #添加主服务器地址 及端口
700 appendonly yes #开启AOF持久化功能
#保存,并启动服务
/etc/init.d/redis_6379 restart
#重启slave1节点和slave2节点redis服务
?
?
?5、验证主从效果
#在Master节点上看日志:
tail -f /var/log/redis_6379.log
#在Master节点上验证从节点:
redis-cli
127.0.0.1:6379> info replication
#创建数据验证
##在master创建数据
set yyh nb
##在从节点上查看
get yyh
在master节点上看日志
?在Master节点上验证从节点
?主节点创建数据验证
?二、哨兵模式的部署
哨兵的启动依赖于主从模式,所以须把主从模式安装好的情况下再去做哨兵模式
1、修改Redis 哨兵模式的配置文件(所有节点操作)
#所有节点配置一样,如下所示
vim /opt/redis-5.0.7/sentinel.conf
17 protected-mode no #关闭保护模式
21 port 26379 #Redis哨兵默认的监听端口
26 daemonize yes #指定sentinel为后台启动
36 logfile "/var/log/sentinel.log" #指定日志存放路径
65 dir "/var/lib/redis/6379" #指定数据库存放路径
84 sentinel monitor mymaster 192.168.127.130 6379 2 #指定该哨兵节点监控192.168.62.50:6379这个主节点,该主节点的名称是mymaster,最后的2的含义与主节点的故障判定有关:至少需要2个哨兵节点同意,才能判定主节点故障并进行故障转移
113 sentinel down-after-milliseconds mymaster 30000 #判定服务器down掉的时间周期,默认30000毫秒(30秒)
146 sentinel failover-timeout mymaster 180000 #146行,故障节点的最大超时时间为180000 (180秒 )
?
?2、启动哨兵模式
每个节点都要开启,先启动master,然后启动slave
#注意:先启master,再启slave
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
cd /opt/redis-5.0.7/
redis-sentinel sentinel.conf &
?3、查看哨兵信息
redis-cli -p 26379 info sentinel
?4、故障模拟
查看并杀死master节点的redis-server
?再次查看哨兵信息
?
?5、恢复过程
如果要将以前的master的redis启动,需要先将/var/run/redis_6379.pid文件删除,删除执行在执行/etc/init.d/redis_6379 start ,即可启动redis服务,启动之后,哨兵会将它设置为salve从节点,并自动指向新的节点。
最好再去配置文件中去指向主从复制的master,也就是将重新启动的master的配置文件/etc/redis/6379.conf 中的 288行重新指向新的master。
6、小结
- 哨兵模式基于主从复制,但主从复制在单点故障后无法自动恢复,导致服务无法实现高可用性;
- 哨兵模式基于主从复制基础之上,添加哨兵节点检测
- 当master宕机后,哨兵节点会通过投票选举方式,选举出新的master服务,保证服务的高可用性
三、Redis集群模式部署
Redis集群一般需要6个节点,三主三从。
本次实验使用一台设备模拟三主三从。
|