原理理解
1,哨兵的作用就是检测redis主服务的状态,如果主服务器挂了,从服务就自动切换为主服务器,变为master。哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。
2,一般来说,主服务可以写入,从服务器只能读。因为是从服务器向主服务器同步数据,如果从服务器可以写入数据的话,两台服务器的数据就不会同步了。但是可通过 replica-read-only 参数修改
3,从节点只能有一个主节点,当再次指定主节点时,从节点会删除旧主节点的数据。
4,从节点去掉主节点后,从节点会重新变成主节点。 命令:slaveof no one 改变从节点状态,slaveof host port 指定主服务实例 。#slaveof本身是异步命令,执行slaveof命令时,节点只保存主节点信息后返回
5,主节点默认是立即将写命令同步到从节点,当网络较差时可开启 repl-disable-tcp-nodelay 参数,这样redis会合并tcp包,从而减少带宽占用。
6,为了安全,主节点可配置 requirepass 参数,这样从节点在连接的时候就需要密码验证。
【主配置文件参数】redis.conf
#bind 127.0.0.1 屏蔽这段,表示允许远程访问
daemonize yes #默认为no,修改为yes,表示启动时在后台运行
requirepass 123456 #设置下密码,123456为密码
【从服务器文件参数】redis.conf
slaveof 39.96.203.220 6379 #表示连接主服务器
masterauth password #主服务器密码,如果主服务有密码的话,这里一定要配置
【哨兵文件配置】sentinel.conf(一般配置在从节点上)
1 # 禁止保护模式
2 protected-mode no
3 # 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,192.168.11.128代表监控的主服务器,6379代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
4 sentinel monitor mymaster 192.168.11.128 6379 2
5 # sentinel author-pass定义服务的密码,mymaster是服务名称,123456是Redis服务器密码
6 # sentinel auth-pass <master-name> <password>
7 sentinel auth-pass mymaster 123456