搭建好redis单机后,开始研究redis集群配置
两台VM虚拟机,都安装了redis程序,一台作为master 一台作为slave
首先配置redis主从配置
配置在redis.conf文件中
主机上需要设置masterauth(光主从同步不需要配置这个,但是后续配置哨兵机制的时候需要配置这个属性)
从机上需要配置slaveof 主机IP 主机端口,同样也许配置masterauth,密码和主机一样
启动主机,启动从机
在主机上set key value后
在从机上get key
能正常得到主机设置的值
但是要实现主从容错自动切换,就需要配置redis哨兵,
redis-sentinel 是一个守护进程,作用有,监控,管理主从机,通知,主从切换功能
首先设置主机sentinel.conf
sentinel monitor mymaster 127.0.0.1 6379 1
这句话的意思是监控集群名为mymaster的主机IP,端口,最后一个数字表示,当有几台哨兵监控到主机出错后执行主从切换
sentinel auth-pass mymaster 密码
这个密码需要和redis.conf中的masterauth一致
sentinel down-after-milliseconds mymaster 15000
这个配置设置的是当哨兵每秒对mymaster主机执行Ping操作时,超过15000毫秒后认为主机宕机
sentinel failover-timeout mymaster 900000
和当主从切换多久后认为主从切换失败
sentinel leader-epoch mymaster 1
sentinel config-epoch mymaster 1
这两个配置后面的数量主从机需要一样
请注意,当主机启动过redis-sentinel 后,哨兵会根据各丛机配置自动查找丛机,会在主机的sentinel.conf文件中自动生成丛机IP,所以不需要将所有丛机IP 列出来
当启动过redis-sentinel时,会在主机sentinel.conf和从机sentinel.conf中生成myid,建议重启redis-sentinel时将两个sentinel.conf中生成的myid删除,不然主从切换时,会根据myid去找对应的从机,当新生成的myid和原来的myid不一致,将无法切换
设置从机sentinel.conf
和主机的sentinel.conf保持一致,
先启动主机redis-server ,在启动从机redis-server,再启动主机redis-sentinel 再启动从机redis-sentinel
将主机master的进程杀掉,可以看到下图的日志,右边为主机,左边为从机