1688做网站需要多少钱,进入百度app查看,图书馆网站建设情况总结,网站开发自荐信请给胡广一个免费的三连吗#xff1f;感谢#xff01;
1. Redis集群
1.1 集群概念
Redis主从架构和Redis集群架构是两种不同的概念#xff0c;大家刚接触Redis时经常弄混淆。胡广给大家贴下Redis官网对两者的解释。
#xff08;1#xff09;Redis主从架构 Redis主从实…请给胡广一个免费的三连吗感谢
1. Redis集群
1.1 集群概念
Redis主从架构和Redis集群架构是两种不同的概念大家刚接触Redis时经常弄混淆。胡广给大家贴下Redis官网对两者的解释。
1Redis主从架构 Redis主从实现了有一个易于使用和配置的领导者跟随者复制它允许副本 Redis 实例成为主实例的精确副本。 2Redis集群架构 Redis 集群将数据自动分片到多个 Redis 节点Redis 集群还在分区期间提供一定程度的可用性当某些节点发生故障或无法通信时Redis集群能够继续运行。 它们两者都是Redis高可用的解决方案但偏向点不同。Redis主从对数据的完整性更看重Redis主从节点都保存了完整的一套数据库状态。
而Redis集群则对抗压能力更看重整个集群的数据库整合起来才是一个完整的数据库。
在功能性上它们也有不同Redis主从有哨兵而Redis集群有分片。我们要看业务选择不同的Redis方案当然Redis集群还可以搭配Redis主从一起使用我们可以在某一个集群节点上配置一套主从模型。
如果要6002、6003节点添加到6001节点的Redis集群里我们可以使用以下命令。
127.0.0.1:6001 CLUSTER MEET 127.0.0.1 6002
OK
127.0.0.1:6001 CLUSTER MEET 127.0.0.1 6003
OK
1.2 集群分片
大家要记住Redis集群一个很重要的知识点那就是分片。
Redis集群通过分片的方式来保存数据库中的键值对Redis集群把整个数据库分为16384个槽而集群中的每个节点可以处理这里面的0个或最多16384个槽。
假如南友们在公司里配置了一个包含 3 个节点的集群那么这3个节点的槽分配会是这样的
节点 A 包含从 0 到 5500 的哈希槽。节点 B 包含从 5501 到 11000 的哈希槽。节点 C 包含从 11001 到 16383 的哈希槽。
那这样分片有什么作用
大家想一想有了分片我们对某一个键值对的增删改查就会在三个集群节点中的其中一个进行这样对Redis的各种操作也就负载均衡地下落到各个集群的节点中。
1.3 重新分片
Redis集群甚至可以在线上环境直接执行重新分片功能分片是不是很灵活呢胡广给Redis点赞。
Redis官网对分片是这么解释的。 Moving hash slots from a node to another does not require stopping any operations; therefore, adding and removing nodes, or changing the percentage of hash slots held by a node, requires no downtime. 将哈希槽从一个节点移动到另一个节点不需要停止任何操作因此添加和删除节点或更改节点持有的哈希槽百分比不需要停机。 Redis集群重新分片可以将任意数量已指派给某个节点的槽改为指派给另一个节点而相关槽所属的键值对也会从源节点被移动到目标节点。重新分片操作也不需要集群节点下线源节点和目标节点也都可以继续处理命令请求。
要是小伙伴遇到热点数据都精确命中了Redis集群的某一个节点赶快在线上环境紧急重新分片把相关热点槽指派给其他节点处理这也是一个不错的选择。
2. 集群的主从模型
2.1 主从模型
还记得上文胡广提到过可以给Redis集群的某一个节点配置主从模型吗
Redis集群把键值都分散在多个集群节点中这也有缺点。例如某一个节点失效了那这个节点里所有槽的键值对也都无法访问了。Redis官方当然也知道主从模型可以让集群节点有1~N个副本节点。
像上文的Redis集群的A、B、C三个节点主从模型可以为这每一个主节点添加一个副本节点。这样的话集群就变成了由A、B、C、A1、B1、C1组成例如当A节点失效了那它的副本节点A1就会提升为新的主节点。
主从模型也有另外的好处我们可以让主节点用于处理槽而副本节点用来分担读的压力。 为集群B节点添加B1、B2副本节点 2.2 主节点选举
Redis集群的主从模型选举主节点和Redis哨兵选举出主节点非常相似但大家不要搞混了Redis集群中并没有哨兵的概念。
主从模型选举主节点和哨兵选举领头哨兵一样是先到先得而且它们投票的对象是集群中的其他主节点。
选举的流程如下。
1当从节点发现主节点进入下线状态时会广播一条CLUSTERMSG_TYPE_FAILOVER_AUTH_REQUEST消息要求其他集群主节点向改从节点进行投票。
2投票遵循先到先得的规则集群主节点会投票给第一个发送选举信息的该从节点返回一条CLUSTERMSG_TYPE_FAILOVER_AUTH_ACK消息。
3如果集群主节点的个数是N当某个从节点收到大于等于N / 2 1张支持票时代表该从节点获胜该从节点也将成为新的主节点。 你好,我是胡广。 致力于为帮助兄弟们的学习方式、面试困难、入职经验少走弯路而写博客 坚持每天两篇高质量文章输出加油 如果本篇文章帮到了你 不妨点个赞吧~ 我会很高兴的 (^ ~ ^) 。想看更多 那就点个关注 吧 我会尽力带来有趣的内容 。 感兴趣的可以先收藏起来还有大家在毕设选题项目以及论文编写等相关问题都可以 给我留言咨询希望帮助更多的人 更多专栏: Java设计模式宝典从入门到精通持续更新 Java基础知识GoGoGo持续更新 ⚽ Java面试宝典从入门到精通持续更新 程序员的那些事~乐一乐 Redis知识、及面试持续更新 Kafka知识文章专栏持续更新 Nginx知识讲解专栏持续更新 未完待续。。。 未完待续。。。 未完待续。。。 感谢订阅专栏 三连文章