1.持久化方式(全量持久化与增量持久化)
2.水平拆分(数据分布)
3.主从复制(主从分工)
4.故障转移(sentinel相互感知,master故障发现,failover决策)
基于全量的持久化在触发的时候,将当时的状态完全保存下来,形成一个snapshot
基于全量的持久化保存的是数据的状态,增量持久化保存的状态的每一次变迁。
基于增量持久化的数据,可以对给定初始状态之后变迁进行回放,恢复数据的最终状态。
hash映射,将key映射到0-16383集合上,然后对各个实例进行均匀的不相交的分配
范围映射,0-100分配给1,100-200分配给2,针对key本身而不是key的函数运算值,重业务
hash映射与范围映射相结合:一致性Hash
3. 一主多从,主负责写,从负责读,并从主同步最新数据
sentinel为了daemon的可用性维护多个daemon进程组成sentinel集群对redis节点进行监控
sentinel节点向master发送心跳包,如果nmaster没有正确响应,判定为主观不可用,将此信息发送至其他setinel节点,如果二分之一以上sentinel节点判定为主观不可用,则该master为客观不可用,启动failouver流程。
首先用一个类似于raft协议(核心是二分之一以上同意)的选举机制,选举出一个发起failover的sentinel节点,然后由其来发起slave按照一定规则选举新的master