配置一个Master和两个slave为例:
1、首先复制三份redis.conf,分别命名redis6379.conf、redis6380.conf、redis6381.conf
2、修改配置文件操作:
开启daemonize yes
pid文件名字 如:pidfile /var/run/redis_6379.pid
指定端口:port 6379
log文件名字:logfile "6379.log"
dump.rdb名字:dbfilename dump6379.rdb
3、启动三个redis
4、连接,指定端口,如:./redis-cli -p 6379
5、查看三个库的身份,命令:info replication
6379:
6380:
6381:
6、6379为主库,6380、6381为从库,从库执行命令:slaveof 主库ip地址 主库端口,此时用info replication查看
6379:
6380和6381:
此时主从配置已经完成,
问题1:如果主库6379挂掉,两从库状态:
可以看出两从库身份状态不变,再将主库6379启动:
一切照旧。若不启动主库,想将从库成为主库,如6380作主库,先在6380执行slaveof no one,然后在6381配置6380为主库。
问题2:从库挂掉,再启动,身份如何。以6380为例:
可以看出和6379关系已经断了,要恢复要手动设置。
哨兵模式
监控,当主库挂掉,可以从从库中投票选出一个当主库。
1、建sentinel.conf配置文件
2、编辑sentinel.conf文件,输入内容:sentinel monitor 被监控主库的名字(自定义) ip 端口 1
如 :sentinel monitor 6379 127.0.0.1 6379 1
最后数字1表示 ,剩下的从库的,最新投票得票数多于1票就可以成为主库。
3、启动哨兵,redis-sentinel sentinel.conf
启动成功,可以看到监控着6379。
现在挂掉主库,查看哨兵状态:
选择了6380作为主库。
此时将6380挂掉,再看哨兵状态:
只剩下6381,此时毫无疑问了。
此时再将6379和6380启动,结果将会自动的以6381为主库,就不再贴图了。