【redis】集群

news/2025/1/31 2:53:57/

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.查看该键应该放在哪个槽位上

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


http://www.ppmy.cn/news/40196.html

相关文章

xor(vector+字典树)

题目大意 给出一个长度为nnn的序列AAA,再给出一个整数xxx,如果一个子序列满足以下的条件,则它是一个符合条件的子序列: 序列中的任意两个数的异或结果都大于等于xxx 求符合条件的子序列的个数,模998244353998244353…

针对近日ChatGPT账号大批量封禁的理性分析

文 / 高扬 这两天不太平。 3月31号,不少技术圈的朋友和我闲聊说,ChatGPT账号不能注册了。 我不以为然,自己有一个号足够了,并不关注账号注册的事情。 后面又有不少朋友和我说ChatGPT账号全部不能注册了,因为老美要封锁…

Winform控件开发(30)——MonthCalendar(史上最全)

前言 MonthCalendar控件用于显示日期,也就是某年某月某日 一、属性 1、Name 用户获取控件对象 2、AllowDrop 指示是否允许用户拖动数据到控件上 3、Anchor 设置控件相对于父控件锚定的位置 4、AnnuallyBoldedDates 设置每一年的该日期是否加粗显示,该属性的值是一个…

【kubernetes-工具篇】K9S详解-宝藏k8s界面工具

K9S简介 K9s是一个命令行界面(CLI)工具,用于管理Kubernetes集群。它是一个流行的开源工具,可以帮助Kubernetes管理员和开发人员轻松管理他们的Kubernetes集群。在本文中,我们将简单介绍K9s的概念、功能和如何使用它。…

Oracle的学习心得和知识总结(十八)|Oracle数据库性能压测工具swingbench的安装和使用及AWR ASH ADDM报告生成

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Guid…

【Kubernetes 企业项目实战】11、掌握 Kubernetes Kustomize 技术从入门到企业实战(下)

目录 一、Kustomize 进阶 1.1 使用覆盖定制资源 1.1.1 kustomization.yaml 1.1.2 deploy-patch.yaml 1.1.3 ing-patch.yaml 1.1.4 op 操作类型介绍 二、生成测试环境定制资源 三、使用 Kustomize 来应用、查看和删除对象 3.1 创建应用 3.2 查看应用 3.3 删除应用 四…

在PHP中输出JS语句以及乱码问题的解决方案

在PHP中输出JS语句以及乱码问题的解决方案 怎样在php中输出js语句? 示例 $classState""; if($state0){ $classState"已下课"; } else{ $classState"正在上课"; } echo ""; ?> 这样在页面的其他地方,就可以直接引用php中…