美文网首页大数据开发
大数据开发:Redis 3.0集群模式的三个重点

大数据开发:Redis 3.0集群模式的三个重点

作者: 成都加米谷大数据 | 来源:发表于2021-07-19 17:52 被阅读0次

Redis 3.0开始引入集群模式,面对分布式环境当中的各种数据处理需求,集群模式高可用、可扩展性、分布式、容错等特性,显然是更加具有竞争力的。今天的大数据开发学习分享,我们就主要来讲讲Redis3.0集群模式的三个重点。

Redis集群模式

集群模式是社区版推出的Redis分布式集群解决方案,主要解决Redis分布式方面的需求,比如,当遇到单机内存,并发和流量等瓶颈的时候,Redis Cluster能起到很好的负载均衡的目的。

集群模式主要三个重要点,分别是槽指派、重新分片、故障转移。

槽指派

Redis集群采用虚拟槽分区,所有的键根据哈希函数映射到0~16383个整数槽内,每个节点负责维护一部分槽以及槽所印映射的键值数据。只有当redis所有的槽(16384)都被分配完了系统才能跑起来。

如果集群中的master没有slave节点,则master挂掉后整个集群就会进入fail状态,因为集群的slot映射不完整。如果集群超过半数以上的master挂掉,无论是否有slave,集群都会进入fail状态。

系统可以通过CRC16(KEY)&16348=slot计算出哪个槽(slot)在那个节点上。

集群内的每个节点又会有一个数据结构存储整个集群内的节点信息。槽指派的信息是分了两种方式,保存在结构体里面:

数组:如果需要判断一个节点负责的槽,只需要获取一个数组判断。

列表:如果找某一个槽是哪个节点负责的,可以用列表查找。

重新分片

重新分片是指将已经指派了的槽重新进行分配给节点。

主要流程

重新分片是指已指派给了节点的槽指派给另一个节点,同时,键值跟随移动,线上执行,无需下线,可用redis-trib进行搭建配置。

过程主要是将槽的键值从源节点迁到目标节点。并向集群中发送命令,将槽中指向目标节点。

其中可能会有访问问题,因为数据进行了迁移,所以访问数据时会先查看数据是否在源节点的数据库,如果是则直接返回,否则会查看是否正在迁移槽;如果正在迁移槽则可能在目标节点,否则这个key就不存在。

故障转移

跟sentinel模式有相似之处,主要是多了个重新分片过程,而且sentinel是通过sentinel来监测和处理节点节点的状态和故障,而集群模式是节点自己相互监测。

故障迁移主要有以下三个部分——

1)发现故障点

集群内的节点会向其他的节点发送ping命令,如果未按时返回pong命令(答复),则这个节点会被标记为疑似下线(类似sentinel的主观下线),如果一半以上的节点都认为这个节点下线了,则这个节点就会被集群广播(类似sentinel中的客观下线),各个节点都会修改配置把这个节点真正下线。大家收到消息后都会把自己维护的结构体里的主节点X标记为已下线

2)从节点选举

当从节点发现自己的主节点下线后,会广播要求自己选为新的主节点(有槽指派的才有投票权,也就是主节点),投票者会给收到申请的第一个节点投票,超过半数则这个节点就会成为主节点。

3)故障迁移

新当选的从节点执行SLAVEOF no one,修改成主节点,使自己成为主节点,槽指派给自己,并向集群发命令,通知其他节点自己已经变成主节点了,负责哪些槽指派。新的主节点开始处理自己负责的槽的命令。

关于大数据开发学习,Redis 3.0集群模式的三个重点,以上就为大家做了简单的讲解了。Redis集群模式,在实际开发当中也是最常使用的,在学习阶段要去吃透才行。

相关文章

  • Redis集群

    Redis在 3.0 版本以后推出了集群模式。Redis集群是一个可以在多个Redis节点之间进行数据共享的程序集...

  • 吃透Redis系列:Redis代理twemproxy和predi

    一,实现Redis集群方案 Redis在3.0版本前只支持单实例模式,虽然Redis的开发者Antirez早在博客...

  • Redis集群模式2-RedisCluster模式

    Redis哨兵集群模式,每个节点都保存全量同步数据,冗余的数据比较多。从Redis3.0开始官方推出了RedisC...

  • 大数据开发:Redis 3.0集群模式的三个重点

    Redis 3.0开始引入集群模式,面对分布式环境当中的各种数据处理需求,集群模式高可用、可扩展性、分布式、容错等...

  • Redis初时~集群模式

    Redis的集群模式是在Redis3.0模式以后所实行的高可用模式。虽然大部分公司还都在用3.0以下的模式,但是随...

  • redis5.0集群搭建 for linux

    redis自3.0版本以来支持主从模式的集群,可用哨兵监控集群健康状态,但这种方式的集群很不成熟,数据备份需要全量...

  • Redis缓存高可用集群

    1、Redis集群方案比较 哨兵模式image.png在redis3.0以前的版本要实现集群一般是借助哨兵sent...

  • redis高可用集群搭建与原理分析

    Redis集群方案比较 哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控m...

  • Redis主备集群配置

    redis3.0以上支持集群模式,集群使用公式 CRC16(key) % 16384 来计算键 key 属于哪个槽...

  • Redis集群创建

    redis集群一直是后台开发的重点,自己搭建一个Redis集群并探究集群是对自己非常有帮助的事,本篇文章重点现在我...

网友评论

    本文标题:大数据开发:Redis 3.0集群模式的三个重点

    本文链接:https://www.haomeiwen.com/subject/kpyhmltx.html