一、呼唤集群
为什么呼唤?
- 并发量
- 数据量
正确的解决方法:
分布式:简单的认为加机器。
二、 数据分布理论
现在有两种分区方式:顺序分区和哈希分区


2.1 节点取余分区

2.2 一致性哈希分区

2.3 虚拟槽哈希分区
三、Redis Cluster基本架构

Redis Cluster 安装的架构

每个节点都会进行读写。

meet:节点之间是可以相互通信的


指派槽:只有对节点进行指派槽,才可以正常使用

现在有3个主节点,A、B和C节点,现在要将16384个槽分配给3个主节点。

复制:每个主节点都有很多从节点,且这里面有很多主节点。且主节点和从节点之间也有复制,如果主节点挂了,那么从节点可以晋升为主节点。内部监控不会依赖于sentinel,而是通过节点之间监控来实现的。
四、 Redis Cluster安装——原生安装
有两种安装方法:
- 原生命令的安装
- 官方工具安装
4.1 理解架构

- 【步骤一】首先配置和开启节点


这个时候这些节点都是相互独立的,还不能够相互通信。如果想要相互通信,就需要meet。
- 【步骤二】meet


:故障转移的时间(节点超时的时间):15秒
- 【步骤三】分配槽

- 【步骤四】设置主从

我们设置了三主三从。
4.2 原生安装——准备节点
首先要在conf文件夹下,配置


启动节点成功后,验证一下节点是否启动成功


当设置完了节点之后,我们进入一个客户端,连接端口为7000的服务器,然后set一下,发现报错了,为什么呢?是因为设置完节点之后,还需要设置槽和设置meet。

4.2 原生安装——节点握手 即meet操作



然后通过这个方法让7000和7001、7002、7003、7004、7005都握手之后,他们彼此之间都能知道彼此的存在。

4.3 原生安装——分配槽
因为有很多机器,所以不能一个机器一个机器的分配槽,所以我们在/redis/下面新创建一个文件夹 script,然后在 script文件夹下创建一个脚本 。在脚本中写分配槽的操作。

4.3 原生安装——分配主从


这样主从节点就分配完了,可以看到主从节点的状态。
五、 Redis Cluster安装——Ruby安装



5.1 ruby 环境准备——操作

六、 扩容集群

- 【第一步】首先准备新节点
- 【第二步】加入集群





- 【第三步】偏移槽和迁移数据



- 【第四步】添加从节点
七、收缩集群

7.1 下线迁移槽

就是下线节点的槽迁移到其他节点上。
7.2 忘记节点

八、客户端路由

8.1 moved 重定向





当使用-c之后是告诉他使用集群模式,所以如果插入的数据槽不命中,他会自动转化到对应的槽的节点上,当执行完上述命令行后,会自动跳转到转换的节点上。

8.2 ASK重定向



8.2 smart
- 从集群中选一个可运行节点,使用 cluster slots 初始化槽和节点映射
- 将 cluster slots 的结果映射到本地,为每个节点创建 JedisPool
- 准备执行命令

JedisCluster 内部有 key 和 slot 的关系。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188182.html