七叶笔记 » 数据库 » Redis cluster集群模式的原理解析

Redis cluster集群模式的原理解析

安装ruby redis 扩展包:

5.2. 安装redis server: 5.3. 创建redis-cluster文件夹 5.4. 将你的redis.conf配置文件分别复制到redis-cluster这个文件夹中

更改如下

5.5. 启动redis服务

需要启动6个服务

5.6 创建集群

其中redis-trib.rb在你的redis安装目录/src下:

/usr/local/redis-cluster/redis-trib.rb create --replicas 1 172.20.0.2:6379 172.20.0.3:6379 172.20.0.4:6379 172.20.0.5:6379 172.20.0.6:6379 172.20.0.7:6379

可以看到创建集群成功了:(如图:2,3,4为主,5,6,7为从)

5.7 设置redis集群密码

如下图,逐一设置redis密码:

5.8 连接集群并测试

六 集群扩容 6.1 添加主节

创建一个新节点(使用的配置文件与之前一样)并启动。

执行命令./redis-trib.rb add-node 172.20.0.8:6379 172.20.0.7:6379,将新节点添加到集群里

(脚本先检查了集群状态,后添加了节点,添加后节点是空节点,还需分配哈希槽,没有哈希槽就没有储存功能)

6.2 为新节点分配哈希槽

注释:

want to move (from 1 to 16384)? 1000(此处为想移动多少个哈希槽)

What is the receiving node ID?(为加入的新节点的id)

Source node #1:all(此处选择all,全部使用并移动,表示从所有主节点中随机转移,凑够1000个哈希槽

6.3 添加从节点slave

如上新建一个空节点并启动

连接上新节点,执行命令cluster replicate (任意一个master的ID)。

查看当前节点状态:

执行命令cluster replicate (任意一个master的ID):

七 删除节点 7.1 迁移slots

把节点拥有的slots全部迁移出去

7.2 删除节点

7.3 没有slots

如果没有一个slots,可直接删除

(这个主节点被删除之后,它之前拥有的从节点会自动成为其他主节点的从节点.)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。

相关文章