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