# 主从同步:
# redis的主从同步功能实现的很简单,只需要在从库的配置文件中,加入下面命令即可
SLAVEOF 192.168.168.133 6379 # 指明主库的地址,就表示此库是从库
# 这样就实现了主库修改,从库也会跟着同步。。
# redis支持多实例,可以在同一个服务器运行多个redis-server端,来实现主从同步。
# 配置文件中修改每个server的端口不冲突即可,登录时,redis-cli -p 端口即可登录到指定端口的server端
# 开启主从同步之后,就算是主库出现故障,我们选择一个从库,执行命令
slaveof no one # 这个从库就变成了一个主库,然后再将剩余的从库中更改主库
SLAVEOF 192.168.168.132 6379 # 执行此命令,该从库就会绑定新的主库进行同步了
# 上面方法可以避免我们的数据丢失,但是,不可能人为的24小时看着主库状态,为了方便,redis提供了哨兵服务,来帮我们管理数据库
# 哨兵的用法:
哨兵可以很好地为我们自动的去执行故障转移操作。!!!
修改配置文件:vim /redis/sentinel.conf # 在redis安装目录下。可以创建多个,就是多个哨兵,多个哨兵仅仅是启动端口不同。。
配置相关:
sentinel monitor mymaster 192.168.168.132 6379 2
# 当前Sentinel节点监控 192.168.168.132:6379 这个主节点
# 2代表判断主节点失败至少需要2个Sentinel节点同意
# mymaster是主节点的别名,可随便定义
sentinel down-after-milliseconds mymaster 30000
#每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒30s且没有回复,则判定主库故障
sentinel parallel-syncs mymaster 1
# 当多个Sentinel节点对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,
# 原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1,
sentinel failover-timeout mymaster 180000
#故障转移超时时间为180000毫秒,就是如果超时时间过后,还没取得其他节点的同意,会强制同步主库的数据,并将同步后记录转发给其他节点
启动哨兵,redis-sentinel /redis/sentinel.conf #指定配置文件运行哨兵,多个哨兵,就运行多个不同哨兵配置文件如: sentinel1.conf,sentinel2.conf,sentinel3.conf
哨兵服务的流程就是,
开启master主库,redis-server redis.conf
再开启一个从库,redis-server redis.conf(与主库只是配置文件多个参数:SLAVEOF IP port)
然后运行redis-sentinel /redis/sentinel.conf