绪论
现有三台设备,192.168.137.11、192.168.137.12和192.168.137.13,要求在三台设备上实现redis哨兵模式,其中192.168.137.11为master,其他两台为slave。
1、在Master上配置redis.conf文件
配置文件内容如下:
protected-mode no (关闭保护模式) port 6379 daemonize yes (设置redis在后台启动) pidfile /var/run/redis_6379.pid logfile "/opt/module/redis/6379/logs/redis_6379.log" (设置日志文件的存放位置) dbfilename dump_6379.rdb (设置dump文件名) dir "/opt/module/redis/6379" (设置dump文件和nodes文件的存放位置) masterauth bigdata (设置集群节点间访问密码,跟上面一致) requirepass bigdata (设置redis访问密码) # bind 127.0.0.1 注释掉该项
2.启动redis,并配置另外两台设备为slave
分别启动三台设备上的redis,然后使用redis-cli在192.168.137.12和192.168.137.13分别执行如下命令,表示以192.168.137.11为master
slaveof 192.168.137.11 6379
查看配置 info replication
可以发现master已经启动
3.配置哨兵
抽取redis压缩文件下的sentinel.conf文件到/opt/module/redis/(存放redis配置文件)下
修改配置如下:
sentinel monitor hadoop-101 192.168.137.11 6379 1
上面最后一个数字1,表示主机挂掉后salve投票看让谁接替成为主机,得票数多少后成为主机
将上面的配置同步到其他两台机器上,并且修改Ip为被同步机器的IP。
4.启动哨兵
Redis-sentinel /myredis/sentinel.conf
打印日志
5.master挂了后
关闭Master的redis进程,sentinel进程的打印的选举过程和选举结果
最终192.168.137.12选举为新的Master
6.王者归来
原来的master重新启动后,是否会双master冲突?
原来的Master在重新启动后,会自动直接变为新master的slave,不会出现双Master的情况。