首先编辑多个redis-conf文件,将端口、守护进程、rdb、log、aof所有设置为本身的内容,方便观察不一样的端口不一样的区份内容redis
这里我配置啦三个端口的redis,分别是:6379 6380 6381,模拟三台redis服务器vim
主从复制,只须要配置从机便可,主机能够不配置;服务器
info replication
图中标的三台redis所有式master,即主机,而且没有任何的从机spa
分别在80 81的操做端,进行设置本身的主机(如今是本地的不一样端口)code
127.0.0.1:6380> slaveof 127.0.0.1 6379 127.0.0.1:6381> slaveof 127.0.0.1 6379
设置完毕以后,从新查看主从标识进程
如今就能够主从复制啦:ip
其实吧,从机是不能写内容,只能读it
两个slave(80 81)会怎样?io
实际上是保持不动,老大走了,临走以前啥都没说,谁也不敢上位呀;ast
79回来啦,主从状态又如何?
猜想:一、主从保持原样(当前配置,正确) 二、很差意思,不认你作老大
本身尝试吧;
任何从机挂了,当前的配置方式,挂掉的从机直接还原到原始模式即master模式,与上次的主机没有任何的联系;
将80重置为主机模式,81不动(仍是从机slave模式),
而后从新设置81的主机是80,结果就不截图啦
要是生产环境master在凌晨挂了,我TM还要起来手动设置??????
master容易挂掉,我就搞一个站岗的,redis提供一个哨兵服务,
当master挂掉以后,哨兵组织当前主机的全部从机进行“投票”,票多者晋升为老大。
查看当前的主从机状态:
建立sentinel.conf文件,
cd /usr/myredis touch sentinel.conf vim sentinel.conf
在sentinel.conf中:
sentinel monitor host3679 127.0.0.1 6379 1 //监控的机器名称(随意) ip port 投票为1,则成为主机(具体投票规则,我不知道,可是sentinel本身完成)
最终个人单独配置文件含有:
进入redis启动文件所在目录:
cd /usr/local/bin
执行;哨兵就会监控下面的主机与端口
注意不要将上面的窗口关闭。
此时,咱们将主机(6379)shutdown
切换到哨兵的窗口(shutdown以后须要等待一分钟左右哨兵才能完成投票与切换主机):
会发现哨兵本身投票,本身切换从机(81)为主机