目录
前言
接着上回这次带来的实战主从复制和搭建哨兵
1、搭建主从复制
环境准备
主master:192.168.154.138
1号salve:192.168.154.131
2号slave:192.168.154.129
关闭防火墙做好同步时间
1、主msater配置
yum install -y gcc gcc-c++ make
#安装依赖环境
tar zxvf redis-5.0.7.tar.gz -C /opt/
#将redis安装包解压到opt目录
cd /opt/redis-5.0.7/
make PREFIX=/usr/local/redis install
#进行make编译
cd /opt/redis-5.0.9/utils/
./install_server.sh
#修改启动脚本回车,直到出现以下选项,手动修改为“/usr/local/redis/bin/redis-server”
Please select the redis executable path [/usr/local/bin/redis-server] /usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/
#设置软连接
2、从slave配置
vim /etc/redis/6379.conf
#修改主master配置文件
bind 0.0.0.0
#70行,修改监听地址为 0.0.0.0
daemonize yes
#137行,开启守护进程 默认打开
logfile /var/1og/redis_6379.1og
#172行,指定日志文件目录
dir /var/lib/redis/6379
#264行,指定工作目录
appendonly yes
#700行,开启 AOF 持久化功能
/etc/init.d/redis_6379 restart
#重启服务
netstat -natp | grep 6379
#查看端口是否打开
在两个从服务器设置修改配置文件
vim /etc/redis/6379.conf
#70行,修改监听地址为 0.0.0.0
repicaof 192.168.154.138 6379
#288行,指定要同步的 Master 节点 IP 和端口
appendonly yes
#700行,开启 AOF 持久化功能
/etc/init.d/redis_6379 restart
#重启服务使配置生效
netstat -natp | grep 6379
#检查端口
3、验证结果
进入主master输入redis-cli info replication
然后可以看到两个slave服务器的IP
或者在主master创建zhangsan键
在两个从服务查看是否有复制的键
两个从服务器都有备份的数据
二、搭建哨兵
哨兵基于主从复制环境依旧和上面一样
主master:192.168.154.138
1号salve:192.168.154.131
2号slave:192.168.154.129
1、在所有节点修改配置文件
vim /opt/redis-5.0.9/sentinel.conf
protected-mode no
#17行,关闭保护模式(默认开启将他关掉)
daemonize yes
#26行 开启守护进程
logfile "/var/log/sentinel.log"
#36行,指定日志存放路径
dir "/var/lib/redis/6379"
#65行,指定数据库存放路径
sentinel monitor mymaster 192.168.154.138 6379 2
#84行,指向master数据节点
sentinel down-after-milliseconds mymaster 30000
#113行不需要修改,哨兵判断master主观下线周期30秒(单位毫秒)
sentinel failover-timeout mymaster 180000
#146行不需要修改故障节点的最大超时时间180秒(单位毫秒)
2、 启动哨兵
cd /opt/redis-5.0.7
redis-sentinel sentinel.conf
#在主节点启动哨兵
redis-sentinel sentinel.conf
#从节点启动哨兵
netstat -natp | grep 26379
#可以看到从slave和其他哨兵节点
--------------------------------------------------------------------------------------------------------------------------------
redis-cli -p 26379 info sentinel
#查看其他哨兵信息
3、模拟故障
1、先看一下当前哨兵状态
2、模拟master故障
暴力删除主master,PID文件
rm -rf /var/run/redis_6379.pid
或者关闭主节点进程号
netstat -natp | grep 6379
杀死这个进程号redis将退出
关闭后等待20秒左右可以看到master主节点192.168.154.138变成了slave的192.168.154131
哨兵切换成功
三、总结
以上只是redis高可用的搭建,我们更需要做的是对于服务器和redis数据库如何优化,尽可能避免数据丢失和发送故障的可能。