大佬教程收集整理的这篇文章主要介绍了linux 下Redis 5.0主从复制(一主二从)哨兵模式的搭建,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
文档结构如下:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/31caf52cdd9ddd3d2cec4b04fb8bc785.png" >
redis一主二从主要是用于读写分离和容灾,配置是配从不配主,主从复制首次同步是全量,后面是增量同步;但是只要是重新连接master,一次完全同步(全量复制)将被自动执行。
redis 一主二从的安装其实跟单机的安装区别不大,本次安装我们可以先修改参数文件后在安装,可以参考我的单机的安装博客:
https://www.cnblogs.com/hmwh/p/9831091.html">https://www.cnblogs.com/hmwh/p/9831091.html
或者直接百度 redis 5.0 linux 之类关键字,也可以百度的到。
a) 关闭防火墙
vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
# targeted - Targeted processes are protected,
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
setenforce 0
service iptables stop
chkconfig iptables off
b) 三台服务器配置好yum
@H_387_0@mount /dev/sr0 /mnt/ @H_387_0@mv redhat.repo redhat.repo.bak @H_387_0@mv rHel-source.repo rHel-source.repo.bakvi /etc/yum.repos.d/rHel-debuginfo.repo
[rHel-debuginfo]
name=Red Hat Enterprise Linux $releasever - $basearch - Debug
baseurl=file:///mnt/
enabled=1
yum -y install make gcc*
把解压包上传到/redis5.0
tar -zxvf redis-5.0.0.tar.gz
需要修改以及注释的参数如下:
@H_387_0@master:save 900 1
#save 300 10
#save 60 10000
bind 172.6.10.80
daemonize yes
loglevel warning
timeout 60
logfile "6379.log"
@H_387_0@maxmemory-policy volatile-ttlauto-aof-rewrite-min-size 10GB
@H_387_0@masterauth redis --主库的密码(本机可以不配置)Slave1:
save 900 1
#save 300 10
#save 60 10000
bind 172.6.10.81
daemonize yes
loglevel warning
logfile "6380.log"
pidfile /var/run/redis_6380.pid
port 6380
timeout 60
@H_387_0@maxmemory-policy volatile-ttlauto-aof-rewrite-min-size 10GB
slaveof 172.16.10.80 6379
@H_387_0@masterauth redis --主库的密码Salve2:
save 900 1
#save 300 10
#save 60 10000
bind 172.6.10.82
daemonize yes
loglevel warning
port 6381
timeout 60
logfile "6381.log"
pidfile /var/run/redis_6381.pid
@H_387_0@maxmemory-policy volatile-ttlauto-aof-rewrite-min-size 10GB
slaveof 172.16.10.80 6379
@H_387_0@masterauth redis --主库的密码
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/e69ba454e3445cb13bbef7e19471ee46.png" >
安装完成。
启动如下:
redis-server /redis5.0/redis-5.0.0/redis6379.conf
redis-server /redis5.0/redis-5.0.0/redis6380.conf
redis-server /redis5.0/redis-5.0.0/redis6381.conf
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/cef42457a58d50d316f575d95aaa8689.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/f1d288f46c6180525b734241ca5ff4ef.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/c95884851aee68e201f7765a303508bc.png" >
由于参数已经修改完了,后面修改密码:
config set requirepass "redis"
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/28e8c2e3d187d61b65ba9fa88deaf966.png" >
并且写入配置文件:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/1590d2065c10b018319d5e3da5087cdf.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/df6f85a0476c6f489a071fa093ee0f7b.png" >
例如关闭提示需要密码就说明修改成功。
同理修改下面两台服务器:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/c774c58dc585478830340bd55fa87786.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/1edcca3c02d8700389700c44b926f7b7.png" >
主从复制的密码配置:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/4da6e1a3f9450f6d4bfb90163e61205e.png" >
查看主机角色信息:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/12c1fe37bcb3d408af9c8146a473377a.png" >
查看从机一配置:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/ccea9d1365ee88ad12dcfdded79ee62a.png" >
查看从机二配置:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/cfffc5ee5a8d38b9b07cc581ba17955e.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/2e0b3749eb2ae2a630cb0372376d5729.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/34ee4a65a4dd80aaba09d787bc58cb35.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/f6c29d534d736c86e1ab0e02960690db.png" >
可以看出同步状态正常。
1、如果没有把slaveof 参数配置到参数文件中,从库重启后需要重新slaveof;即从库会变成主库(没有配置slaveof参数文件)
2、在主从搭建完成后,后面添加的从库slaveof后,会自动把数据从主库同步过来,生产上会有一定的性能影响。
3、从机只有读的权限,主机才能够写操作。
关闭主库。
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/c5e1cb3bc71eff9f410b9277e6a4dfa3.png" >
查看从库1,2
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/33bbeda2046d8d489c33ec0ceb6c91ca.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/ea288134e7638b69d145361833d66297.png" >
slave 变成主库
slaveof no one
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/87987935b4fc93702a271a506e717d32.png" >
redis的哨兵(senTinel) 系统用于管理多个 redis 服务器,该系统执行以下三个任务:
监控(Monitoring): 哨兵(senTinel) 会不断地检查你的Master和Slave是否运作正常。
提醒(Notification):当被监控的某个 redis出现问题时,哨兵(senTinel) 可以通过 API 向管理员或者其他应用程序发送通知。
自动故障迁移(Automatic failover):当一个Master不能正常工作时,哨兵(senTinel) 会开始一次自动故障迁移操作,它会将失效Master的其中一个Slave升级为新的Master,并让失效Master的其他Slave改为复制新的Master;如果修复好的master重新启动后,原master变成slave。
简单配置如下:
在安装的redis目录下,有senTinel.conf文件,可以设置超时等等。
本次测试是我自己新建一个文件格式如下:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/732d9331eedad81e6978da5e135e0a9d.png" >
senTinel monitor 主机名 主机ip 主机端口 票数n 票数多余n的从机作为主机
由于是三台服务器(谁有2票就谁为新master)
vi senTinel6379.conf
senTinel monitor redis01 172.16.10.80 6379 2
senTinel auth-pass redis01 redis #master如果设置密码 没有可以不用这一行
senTinel down-after-milliseconds redis01 5000 #修改心跳为5000毫秒
protected-mode no --关闭保护进程模式,防止哨兵不能互相通信
启动:
redis-senTinel /redis5.0/redis-5.0.0/senTinel6379.conf
或者后台启动:
redis-senTinel /redis5.0/redis-5.0.0/senTinel6379.conf --senTinel &
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/9c2717c66d88354cbf30d7a625316deb.png" >
vi senTinel6380.conf
senTinel monitor redis01 172.16.10.80 6379 2
senTinel auth-pass redis01 redis
senTinel down-after-milliseconds redis01 5000
protected-mode no --关闭保护进程模式,防止哨兵不能互相通信
启动:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/260f795b2ddc7a782611d5d000a55307.png" >
vi senTinel6381.conf
senTinel monitor redis01 172.16.10.80 6379 2
senTinel auth-pass redis01 redis
senTinel down-after-milliseconds redis01 5000
protected-mode no --关闭保护进程模式,防止哨兵不能互相通信
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/060f23d34967ee459228cfd9871d9dfc.png" >
查看各个节点的哨兵模式情况:
@H_387_0@master:redis-cli -h 172.16.10.80 -p 26379
info senTinel
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/a3109406bc421dcc9a82776f1c6e6b3d.png" >
Slave1:
redis-cli -h 172.16.10.81 -p 26379
info senTinel
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/f31e56a752bb0ed8f9ec0af47b574d54.png" >
Slave2:
redis-cli -h 172.16.10.82 -p 26379
info senTinel
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/7c4ce7ac2cbf4abd554eaf48a298b5ae.png" >
模拟master down掉测试:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/e3f6356cccfa5d82bd7ae9e9e0e27564.png" >
查看:
原master哨兵进程日志:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/f5920606476822f8cACB212030dcdc49.png" >
从中看出failover到原slave1了。
查看原salve1(现master) 哨兵进程日志:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/3fb25ba8d3662a56df1b15af7aa1abe7.png" >
Slave1 为新master了。
查看slave2日志说明:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/b991acd247eeaa4a9101e1a86cbfd987.png" >
Salve2变成原slave1的从库了。
查看新master信息:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/719887d513bcb7502d7b615ced309c66.png" >
角色为master,一个从库,为原slave1。
查看新从库信息:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/028997cf318645df4e46ffa34da3f0b6.png" >
为slave角色,新的主库为10.81。
测试是否同步:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/417f2a2e1c2bb8aa0499489da2d789a1.png" >
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/6bafc8ec9c6d0c2b9db452f1ebafeff3.png" >
同步成功。
原master修好后,启动后:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/cd86dd450c3325751286a822e26d435c.png" >
变成现在master的从机了,并不会变成独立的一台master。
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/24932f85d09b9a56d0242a9fd3a3f633.png" >
哨兵日志提示为10.81的从库了。
测试:
title="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" alt="linux 下redis 5.0主从复制(一主二从)哨兵模式的搭建" src="https://cn.js-code.com/res/2019/01-18/19/f8f98a6ecbf8cdda7bb85a8ea6b845fd.png" >
把现在新master数据同步过来了没问题,也可以自行测试。
总结:
1、 大的互联网公司都会使用哨兵模式主从或者集群模式24*7提供业务以及提供读写分离,减轻系统的压力,身边使用最多的就是大家知道的知乎网站。
2、 在failover之后,原master修复好后会变为新master的从库,并不会变成独立的一台master。
以上是大佬教程为你收集整理的linux 下Redis 5.0主从复制(一主二从)哨兵模式的搭建全部内容,希望文章能够帮你解决linux 下Redis 5.0主从复制(一主二从)哨兵模式的搭建所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。