当前位置: 首页 > news >正文

Redis进阶--集群

目录

一、引言

二、介绍

三、搭建redis集群

四、故障

1.如果集群中有redis节点挂了会怎么样?

2.识别出某个节点是否挂了

3.集群宕机

五、集群扩容

六、总结


一、引言

  本篇文章我们将介绍Redis服务器使用过程中的集群相关概念。

二、介绍

  广义的集群:只要你是多个机器构成了一个分布式系统,都可以称为一个集群(主从结构)

  狭义的集群:redis提供的集群模式,主要是为了解决存储空间不足的问题(拓展存储空间)

  数据分片算法:

1.哈希求余:将key映射到整数,再针对数组长度进行求余,得到数据下标。一般是使用md5的计算方式

MD5的特性:

1.结果是定长的,结果都是固定长度

2.MD5

计算结果是分散的,两个字符串即使大部分相同,只要有一小点不同,结果的差别都是很大的

3.MD5计算结果是不可逆的

MD5不可逆,拿到MD5计算结果是不能算出原来的字符串的

2.一致性哈希算法:

一个圆盘,范围从0到2的32次方-1,利用哈希函数得到这个值之后放入到分片管辖区间

3.哈希槽分区算法(redis真正使用的

共有16384个槽位,每个分片均匀地分配这些槽位。

三、搭建redis集群

在linux上,以.sh后缀结尾的文件,称为“shell脚本”

1.创建redis目录之后,再创建两个文件

2.使用脚本创建ip配置文件

四、故障

1.如果集群中有redis节点挂了会怎么样?

  如果是从节点:没有什么实际影响,只不过会影响查询速度

  如果是主节点:和之前哨兵的模式一样,会重新选举出一个leader,由leader选举出一个从节点变成主节点。

2.识别出某个节点是否挂了

1.A发送心跳包ping,B返回pong,这里的ping和pong除了message type属性不一致外,其他都一致(包含了集群的配置信息,该节点的id,该节点从属于哪个分片,是主节点还是从节点,从属于谁等)

2.每个节点,每秒钟都会随机给其他节点发送ping包,而不是全发

3.如果A给B发了ping,B没有回应pong,这时候A就会主动与B建立TCP连接,看能否连接成功,如果仍然失败,A就会把B设为PFAIL状态(相当于主观下线)

4.A判定B为PFAIL之后,会通过redis的Gossip协议,和其他节点进行沟通,去沟通B的状态

5.如果A发现很多节点都认为B为PFAIL之后,并且数目超过了总集群个数的一半,那么A就会把B标记为FAIL(客观下线),同时将这个信息同步给其他节点。

谁休眠时间短大概率会使新的主节点

3.集群宕机

1.某个分片,主节点和从节点都挂了

2.某个分片,主节点挂了,并且没有从节点

3.超过半数的master节点都挂了

五、集群扩容

添加了节点之后,从其他节点搬运部分槽

  搬运过程中,如果有客户端进行访问,访问的是没搬运的key就可以访问,访问搬运的key可能会发生出错的情况

六、总结

  本篇文章简单讲解了Redis中集群的使用,集群的使用情况是远远不如主从复制的,但是还是需要掌握,具体的命令也不用特意去背,要使用的时候去网上查阅即可,注意,集群扩容是十分谨慎的事情,要考虑好了再执行。

http://www.dtcms.com/a/288421.html

相关文章:

  • C study notes[1]
  • LVS技术知识详解(知识点+相关实验部署)
  • simulink系列之模型接口表生成及自动连线脚本
  • 消息队列:数字化通信的高效纽带
  • SQL Server和PostgreSQL填充因子
  • HCIA综合实验
  • string【下】- 内功修炼(搓底层)
  • C++入门--lesson4
  • CCF编程能力等级认证GESP—C++6级—20250628
  • ICT测试原理之--什么是假短
  • 基于opencv的人脸识别考勤系统
  • 人工智能与心理史学:从阿西莫夫的科幻预言到可计算社会模型>
  • Chris Fraser | 中国早期思想中墨家与荀子的知识论
  • 【完整代码】融合时序轨迹与49维特征反演的双色球开奖预测模型:一项关于隐藏规律的探索
  • Maven常用知识总结
  • Docker容器原理和启动策略
  • 传统浏览器过时了?Dia如何用AI重新定义上网体验
  • 零基础学习性能测试第二章-linux服务器监控:内存监控
  • 【60】MFC入门到精通——运行后 button按键上不显示 按键名, 控件上的文字不显示
  • 阶段1--Linux存储管理
  • Codeforces Round 1037(Div3)
  • 【web安全】万能密码
  • 车载诊断架构 --- OEM对于DTC相关参数得定义
  • 计算机网络1.1:计算机网络在信息时代的作用
  • 教你如何借助AI精读文献
  • python基础笔记
  • LRU算法及优化
  • 佛经个人阅读(一)《心经》解析
  • 纸板制造糊机操作
  • 数据类型选择:存储销量与查询性能的平衡