【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】集群_第1张图片
单体哨兵redis和集群的概念图
【redis】集群_第2张图片


一、集群是什么?

定义:
是什么

二、集群能干嘛?

【redis】集群_第3张图片


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

槽位官网解释:【redis】集群_第4张图片

1.redis集群的槽位slot

槽位:【redis】集群_第5张图片【redis】集群_第6张图片

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

3.上述两者的优势

【redis】集群_第7张图片

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

a.哈希取余分区 -->【redis】集群_第8张图片

优点【redis】集群_第9张图片
缺点:如果redis数量有变动,则映射关系会重新计算【redis】集群_第10张图片

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

是什么?【redis】集群_第11张图片

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

【redis】集群_第12张图片

三大步骤

算法构建一致性哈希环【redis】集群_第13张图片

redis 服务器IP节点映射【redis】集群_第14张图片

key落到服务器的落键规则 【redis】集群_第15张图片

优点【redis】集群_第16张图片

容错性:在这里插入图片描述【redis】集群_第17张图片

扩展性:在这里插入图片描述【redis】集群_第18张图片

缺点


数据倾斜:大部分数据都缓存在某一台服务器上
【redis】集群_第19张图片

总结:【redis】集群_第20张图片

c.哈希槽分区 -->

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

【redis】集群_第21张图片

能干什么【redis】集群_第22张图片

多少个hash槽

在这里插入图片描述

hash槽计算

【redis】集群_第23张图片

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

【redis】集群_第24张图片

【redis】集群_第25张图片
说明1
【redis】集群_第26张图片
【redis】集群_第27张图片
说明2
【redis】集群_第28张图片
计算结论:
【redis】集群_第29张图片

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


四、集群环境案例步骤

【redis】集群_第30张图片

1、3主3从redis集群配置

【redis】集群_第31张图片

2、3主3从redis集群读写

【redis】集群_第32张图片

【redis】集群_第33张图片

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

【redis】集群_第34张图片
容错切换迁移:
【redis】集群_第35张图片
集群不保证数据一致性100%,一定会有数据丢失的情况
【redis】集群_第36张图片

手动故障转移 or 节点从属调整该如何处理
即:6381从原来的主机变成从机之后,如何再调换回来重新变成主机?
命令:CLUSTER FAILOVER
【redis】集群_第37张图片

4、主从扩容案例

图示:
【redis】集群_第38张图片

操作步骤:
【redis】集群_第39张图片

5、主从缩容案例

图示:
【redis】集群_第40张图片

操作步骤:
【redis】集群_第41张图片


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

【redis】集群_第42张图片

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

【redis】集群_第43张图片

2、CRC16源码浅谈【redis】集群_第44张图片

3、常用命令

【redis】集群_第45张图片

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

【redis】集群_第46张图片

b.查看槽位是否被占用

在这里插入图片描述

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

在这里插入图片描述
【redis】集群_第47张图片

你可能感兴趣的:(redis,redis,数据库,缓存)