沈阳市绿云网站建设,美食网页制作,注册公司流程网,网站空间多少提前叠个 buff#xff1a;这个文章不涉及图#xff08;画起来比较麻烦#xff09;#xff0c;只是记录我的胡思乱想。 redis 从单点 - 集群总共有三个部署模式#xff1a;单机模式#xff0c;主从模式#xff0c;哨兵模式#xff0c;集群模式 单机模式
新手入门模…提前叠个 buff这个文章不涉及图画起来比较麻烦只是记录我的胡思乱想。 redis 从单点 - 集群总共有三个部署模式单机模式主从模式哨兵模式集群模式 单机模式
新手入门模式。单机模式意味着 Redis 是单点的部署在一台服务器挂了就挂了用在本地测试还可以但是生产环境就算了。
优势
部署简单省钱一台服务器就可以了不涉及主从复制等数据强一致
劣势
单点意味着稳定性基本上为 0挂了就挂了吞吐量受限于单机资源
主从模式
当流量越来越大单台机器资源不能无限增长就需要水平扩展到多个节点使用多个节点分散承接读流量。
主从模式为主节点承接写流量从节点承接读流量二者数据一致通过主节点异步复制全量复制 / 增量复制到从节点。
优势
读流量被分摊到多个节点上读流量支持力度变大当主节点宕机/不可用时可以手动切换主节点继续提供服务
劣势
当主节点宕机/不可用时手动切换节点切换过程中 redis 主节点不可用并且会丢失主节点 / 从节点之间未同步的数据稳定性还是不够依赖手动切换。不适用于生产。写流量还是让主节点独自承受写流量还是靠单机资源支撑
哨兵模式
哨兵模式主要解决主从模式中手动切换的部分本质上哨兵代替了人通过 gossip 协议监控主节点的健康情况。
优势
不用手动切换主节点了切换过程中虽然 redis 也是不可用的但是这个时间会极大的降低
劣势
sentinel 与主节点多了一层心跳检测有可能 sentinel 与主节点的网络抖动导致重新选举主节点。redis 主从节点吞吐因心跳检测可能稍微降低。
集群模式
集群模式主要解决了两个问题写流量水平扩展 哨兵与主节点的网络抖动。
集群模式主要的架构为主节点平分 16384 个槽集群支持主节点的动态上线/下线需要 rehash主节点与从节点通过心跳关联主节点失联后从节点有权发起选举成为主节点raft 算法。
优势
自管理集群内主从节点上下线减少因外部集群网络抖动之类的发起的无效选举数据按照 slot 存放在多个节点客户端通过服务端主节点的重定向跳转到具体的槽可动态调整数据分布减少了集群整体不可用的概率某一主节点宕机只影响一部分数据的访问写流量 数据平分到多个节点集群的写请求瓶颈得到缓解
劣势
集群间状态同步使用 gossip 协议节点数较多存在较多的心跳网络流量主节点的上线/下线需要进行 rehash 当节点内数据较多耗时较长 redis 节点间复制有两种全量复制 部分复制 全量复制
出现场景
从节点刚上线需要同步主节点的数据从节点切换脑裂后从节点偏移量与主节点不一致的时间点从节点偏移量不在主节点的复制缓冲区中
过程
从节点向主节点发起同步数据的请求主节点通过 bgsave 形成当前数据的快照发给从节点从节点删除历史数据加载主节点发过来 RDB 文件从节点拉取主节点缓冲区数据加载到自身的内存中并更新当前的偏移量
部分复制
出现场景
全量复制出现场景之外的场景主从日常复制
过程
主节点将命令同步到缓冲区AOF从节点拉取缓冲区数据更新到自身的节点中并更新当前的偏移量
本文首发于cartoon的博客
转载请注明出处:https://cartoonyu.github.io