首先要保证至少两份redis可供操作,下面以两份redis来演练
主的redis的不需要操作,需要修改的是从的redis的
需要修改redis的bin目录下的redis.conf文件
首先找到replicaof 添加ip地址与端口
表示作为此(192.168.0.106 6379)的从
有的版本是slaveof而不是replicaof,但修改方式是一样的
还需要找到bind
将127.0.0.1注释掉,redis从机的ip地址,这里演示只有一台机器,所以两份redis的ip一样但端口不一样
修改端口
从默认的6379改为6380
继续修改下面
6379.pid为6380.pid
不然启动的时候端口还是6379
差点忘了还要配置主的密码,找寻masterauth
然后保存退出
通过./redis-server redis.conf 后台启动
通过./redis-cli -h 192.168.0.106 -p6380 指定端口 登录客户端
info查看信息
可以看得role:slave角色是从
master_host:192.168.0.106主的ip
master_port:6379主的i端口
master_link_status:up主的链接状态
然后查看6379这边的信息
可以看到从的信息
这样主从就搭建好了
但这样还无法达到高可用,需要运维人员来确保当主机出故障的时候,从机可以代替主机
这样就要介绍下面的哨兵来达到主从切换
redis本身提供了哨兵来监控redis集群的情况,当出现主机宕机的情况便会通过内部的投票机制从从机中选出新的主机
这里要先配置sentinel.conf(哨兵的配置文件,可以从redis的解压包中cp过来)
上面指定主redis的名,ip,端口,以及可以作为主的的票数
下面配置主机的密码
保存退出
./redis-sentinel sentinel.conf 启动哨兵查看信息
可以看出主机是没有启动的
现在启动主机
提示redis主已启动
然后启动从机
提示从已启动
现在关闭从
哨兵监测到从已关闭
下面重要的部分来了,当我们启动从 再关掉主看看哨兵会怎么样
可以看到,哨兵监测到主机宕机后,会尝试重新连接主机,但是没能成功,于是就重新选取了6380来作为主
连接客户端查看6380的信息
6380已经变为主
再次启动6379
可以看到6379已经变成了从