redis可以分为redis读写分离.哨兵sentinel,分布式模式.
redis分离
主节点写,从节点读.
同步机制:
全量同步:
一般发送在初始化阶段,这时主服务器需要将缓存上的所有数据都复制一份,发送到从服务器.
增量同步:
一般是增量同步发送在初始化后开始工作的阶段.主服务器每执行一个写命令.就会向从服务器发送相同的写命令.从服务器接收并执行收到的写命令。
哨兵sentinel
sentinel的工作任务
一主多从
监控:
不断的检查你的主服务器和从服务器是否正常运行
提醒:
当监控的某个redis服务器出现问题时,可以通过API向管理员或者其他应用程序发送通知
自动故障迁移:
当一个主服务器不能正常工作时,会开始自动故障转移操作,它会讲从服务器升级为新的主服务器,并让失效主服务器的其他从服务器改为复制新的主服务器
同步机制
完整重同步
redis的读写分离的同步机制
部分重同步
主服务器和从服务器都有偏移量,当每写入一个就偏移一位.
1:断线后写入命令放入缓存区并进行偏移.积压的缓存默认为1M
2:将断线期间写入命令发送给从同服务器.确认的方法是查看偏移量来确认命令.
如果不是断线是换服务器的话.就是进行完整重同步中的全量同步.
分布式
去中心化.一般3主3从.
特点:
1:当主节点挂了,他的从节点替换.当他修好后也是当做从节点.
2:是否确认主节点挂了,是投票.超过半数则判断这个主节点挂了.
3:所有的redis节点彼此互联,内部所有二进制协议优化传输速度和带宽
4:客户端与redis节点直连,不需要连接集群的所有的节点.只要连接任意一点就行.
5:集群把所有的物理节点映射到[0~16383]哈希槽上,cluster负责维护node<>slot<>key关系.采用哈希槽的方式来分配数据.redis cluster 默认分配了16383个.16383/节点来分配区间.来的数据取余来分配到这些节点上.