分布式Redis
Redis的集群
135:master
131,134:slave
修改master配置
in 135
vim redis.conf
#bind 127.0.0.1 protected-mode no # 以守护线程启用 daemonize yes ## 设置密码 requirepass guaoran ## master 密码 # masterauth <master-password> masterauth guaoran
修改slave配置
in 131,134
vim redis.conf
# replicaof <masterip> <masterport> replicaof 192.168.45.135 6379 #bind 127.0.0.1 protected-mode no # masterauth <master-password> masterauth guaoran
同步机制
原理:
master 不做全量复制(初始化的时候做全量复制,之后是增量复制),即不去生成磁盘快照
repl-diskless-sync no
哨兵机制
sentinel
目的:
监控master和slave是否正常
当master出现故障时,从slave中选举一个新的master
raft算法(协议)
哨兵的配置sentinel.conf
# time while performing the synchronization with the master. sentinel monitor mymaster 192.168.45.134 6379 1 # sentinel failover-timeout <master-name> <milliseconds> # 表示如果5s内mymaster没响应,就认为SDOWN sentinel down-after-milliseconds mymaster 5000 ## 哨兵密码 sentinel auth-pass mymaster guaoran # sentinel down-after-milliseconds <master-name> <milliseconds> #表示如果15秒后,mysater仍没活过来,则启动failover,从剩下的 slave中选一个升级为master sentinel failover-timeout mymaster 15000
两种方式启动哨兵
redis-sentinel sentinel.conf
redis-server /path/to/sentinel.conf --sentinel
哨兵模式下,redis 客户端应该连接到哪个redis-server
JedisSentnelPool
根据哨兵的集群地址,通过哨兵获得redis的master地址 ,拿到地址后会进行连接,并进行监控,