> 文章列表 > 【redis】集群

【redis】集群

【redis】集群

redis集群

集群有点难 大部分的实操命令没有记录 希望能二刷补上 18:46


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • redis集群
  • 前言
  • 一、集群是什么?
  • 二、集群能干嘛?
  • 三、集群算法-分片-槽位slot
    • 1.redis集群的槽位slot
    • 2.redis集群的分片![在这里插入图片描述](https://img-blog.csdnimg.cn/9b7fc5d74890447dbe234aba3aeac535.png)
    • 3.上述两者的优势
    • 4.slot槽位映射,一般业界有3种解决方案
      • *a.哈希取余分区* -->![在这里插入图片描述](https://img-blog.csdnimg.cn/eb8d927cff7a4c57b0b84709c4bf620a.png)
      • *b.一致性哈希算法分区* -->
        • 是什么?![在这里插入图片描述](https://img-blog.csdnimg.cn/e1f3b619aeed45cb98d11e19e4b862ba.png)
        • 能干嘛?相当于给奔跑中的汽车换轮胎
        • ==三大步骤==
        • 优点![在这里插入图片描述](https://img-blog.csdnimg.cn/8d8b9685159a4decbe4a3d045d4a7489.png)
        • 缺点
        • 总结:![在这里插入图片描述](https://img-blog.csdnimg.cn/4d7c878b1d64466daf20f42eb2c9a4ce.png)
      • *c.哈希槽分区* -->
        • 为什么出现 解决数据倾斜的问题
        • 能干什么![在这里插入图片描述](https://img-blog.csdnimg.cn/6f695e12a1fe48bea4759b8562ec186e.png)
        • 多少个hash槽
        • hash槽计算
    • 5.面试题:为什么redis集群的最大槽位数是16384个?
    • 6.redis集群不保证强一致性,这意味着在特定的条件下,redis集群可能会丢失一些被系统收到的写入请求命令
  • 四、集群环境案例步骤
    • 1、3主3从redis集群配置
    • 2、3主3从redis集群读写
    • 3、主从容错切换迁移案例
    • 4、主从扩容案例
    • 5、主从缩容案例
  • 五、集群常用操作命令和CRC16算法分析
    • 1、在集群中,原来的批处理mget、mset命令不起作用,需要使用到通识占位符 {任意参数}
    • 2、CRC16源码浅谈![在这里插入图片描述](https://img-blog.csdnimg.cn/0da65eb0773a45e39a200a3495f9a336.png)
    • 3、常用命令
      • a.集群是否必须为 完整 情况下,才能对外提供服务?即有一个master挂了的情况 A:默认不提供,但可以设置
      • b.查看槽位是否被占用
      • c.查看该键应该放在哪个槽位上

前言

大纲
在这里插入图片描述
单体哨兵redis和集群的概念图
在这里插入图片描述


一、集群是什么?

定义:
是什么

二、集群能干嘛?

在这里插入图片描述


三、集群算法-分片-槽位slot

槽位官网解释:在这里插入图片描述

1.redis集群的槽位slot

槽位:在这里插入图片描述在这里插入图片描述

2.redis集群的分片在这里插入图片描述

3.上述两者的优势

在这里插入图片描述

4.slot槽位映射,一般业界有3种解决方案

a.哈希取余分区 -->在这里插入图片描述

优点:在这里插入图片描述
缺点:如果redis数量有变动,则映射关系会重新计算在这里插入图片描述

b.一致性哈希算法分区 -->

是什么?在这里插入图片描述

能干嘛?相当于给奔跑中的汽车换轮胎

在这里插入图片描述

三大步骤

算法构建一致性哈希环在这里插入图片描述

redis 服务器IP节点映射在这里插入图片描述

key落到服务器的落键规则 在这里插入图片描述

优点在这里插入图片描述

容错性:在这里插入图片描述在这里插入图片描述

扩展性:在这里插入图片描述在这里插入图片描述

缺点


数据倾斜:大部分数据都缓存在某一台服务器上
在这里插入图片描述

总结:在这里插入图片描述

c.哈希槽分区 -->

为什么出现 解决数据倾斜的问题

在这里插入图片描述

能干什么在这里插入图片描述

多少个hash槽

在这里插入图片描述

hash槽计算

在这里插入图片描述

5.面试题:为什么redis集群的最大槽位数是16384个?

在这里插入图片描述

在这里插入图片描述
说明1
在这里插入图片描述
在这里插入图片描述
说明2
在这里插入图片描述
计算结论:
在这里插入图片描述

6.redis集群不保证强一致性,这意味着在特定的条件下,redis集群可能会丢失一些被系统收到的写入请求命令


四、集群环境案例步骤

在这里插入图片描述

1、3主3从redis集群配置

在这里插入图片描述

2、3主3从redis集群读写

在这里插入图片描述

在这里插入图片描述

3、主从容错切换迁移案例

在这里插入图片描述
容错切换迁移:
在这里插入图片描述
集群不保证数据一致性100%,一定会有数据丢失的情况
在这里插入图片描述

手动故障转移 or 节点从属调整该如何处理
即:6381从原来的主机变成从机之后,如何再调换回来重新变成主机?
命令:CLUSTER FAILOVER
在这里插入图片描述

4、主从扩容案例

图示:

操作步骤:
在这里插入图片描述

5、主从缩容案例

图示:
在这里插入图片描述

操作步骤:
在这里插入图片描述


五、集群常用操作命令和CRC16算法分析

在这里插入图片描述

1、在集群中,原来的批处理mget、mset命令不起作用,需要使用到通识占位符 {任意参数}

在这里插入图片描述

2、CRC16源码浅谈在这里插入图片描述

3、常用命令

在这里插入图片描述

a.集群是否必须为 完整 情况下,才能对外提供服务?即有一个master挂了的情况 A:默认不提供,但可以设置

在这里插入图片描述

b.查看槽位是否被占用

在这里插入图片描述

c.查看该键应该放在哪个槽位上

在这里插入图片描述
在这里插入图片描述