redis集群-解决单点故障和访问压力问题(主从、哨兵)

主从复制原则

AFK原则
X:全量,镜像
Y:业务,功能
Z:优先级,逻辑再拆分
主从一致性
一般采用最终一致性方案,redis使用异步复制方案,弱一致性有可能丢失数据
故障转移
主从一般使用奇数台。并且可以通过n/2+1俗称过半的机器势力范围,来判断是否可用状态。
(少于n/2+1判定故障,会脑裂主要看分区容忍性,数据一致性要求是否很高)
CAP
CAP,一致性,可用性,分区容忍性。一致性和可用性不可能同时存在,因为强一致性,一定会降低可用性

命令配置主从

5.0之前slaveof,之后replicaof 
replicaof host port				主的地址,端口。在复制时,会先自身flush,再进行复制

细活{
redis-server *config --replicaof host port,启动时配置主从。
RDB,如果从节点连接过主,在宕机后,再次启动,会**增量**更新主改变的内容。(rdb文件中有replicaid,repl-backlog-size 1mb 根据offset查看需要增量更新的内容,如果超过1m,全量更新)

redis-server *config --replicaof host port --appendonly yes
redis现有版本AOF,不会记录是否链接过主(RDB,AOF混合模式,RDB中没有replicaid,**全量**更新)
}
故障切换:主机宕机,从机自立山头,其他从机跟随
1、replicaof no one 				成为master
2、replicaof newhost newport        追随新master

配置文件

*conf中,搜索replication

replicaof <masterip> <masterport>
replica-serve-stale-data yes  在备机准备阶段,是否支持老数据查询。no,在准备完,才允许查
replica-read-only yes  备机仅读

哨兵

配置文件:26379.conf/26380.conf/26381.conf   ,详见根目录sentinel.conf
port 26379/26380/26381  切换不同端口
sentinel monitor mymaster 127.0.0.1 6379 2					这个不用变,哨兵会自己改写配置
                 哨兵名称   主机的IP端口    势力范围个数
--------------------------------------------------------------------------------------
redis-server 26379.conf --sentinel   声明为哨兵进程。哨兵监控着主,而主能够知道自己的所有的从。
主从节点配置完成,启动哨兵。日志内容:
2066:X 21 Apr 2020 04:25:34.207 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6379
2066:X 21 Apr 2020 04:25:34.208 * +slave slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
---------------------------------------------------------------------------------------
启动三个哨兵,发现哨兵之间各自知道存在(通过发布订阅发现)。当关闭主机节点,发现其中一个哨兵日志比较长,包含日志:
2108:X 21 Apr 2020 04:33:22.134 * +failover-state-send-slaveof-noone slave 127.0.0.1:6381 127.0.0.1 6381 @ mymaster 127.0.0.1 6379
选举新的主节点

2108:X 21 Apr 2020 04:33:23.760 * +slave slave 127.0.0.1:6380 127.0.0.1 6380 @ mymaster 127.0.0.1 6381
从节点跟随新master
----------------------------------------------------------------------------------------
自动完成故障转移,在主机挂掉后,选举出新的主,进行no one。其余节点进行跟随。

通过发布订阅获得状态,PSUBSCRIBE *,参数输入正则。*号表示查看所有发布消息

你可能感兴趣的:(redis)