Window下搭建Redis集群

@Redis集群环境搭建

Window下搭建Redis集群

搭建含三个节点的集群,每个节点有一主一备。

1、Redis下载

1)、下载

https://github.com/MSOpenTech/redis/releases

Window下搭建Redis集群

2)、解压

解压 Redis .zip 文件,重命名为redis。

2、修改配置

1)、修改 redis.windows.conf

修改以下配置支持集群

cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
appendonly yes

2)、新建 start.bat

编写一个 bat 来启动 redis,内容如下:

redis-server.exe redis.windows.conf

Window下搭建Redis集群

3)、复制节点

将 Redis 解压后文件复制出 5 份,配置三主三从集群。 分别重命名为 master6379、master6380,master6381,slave6382,slave6383,slave6384。(实际主备不安文件名区分)
Window下搭建Redis集群

3、安装Ruby

1)、下载

https://rubyinstaller.org/downloads/
Window下搭建Redis集群

2)、安装

双击《rubyinstaller-2.3.3-x64.exe》开始安装。
Window下搭建Redis集群
安装时3个选项都勾选

3)、测试

命令窗口执行:。

ruby -v

正常显示 ruby 版本表示安装成功
Window下搭建Redis集群

4、安装Ruby驱动

1)、下载

https://rubygems.org/pages/download

Window下搭建Redis集群

2)、安装

解压文件,命令窗口切换到解压目录,执行:

ruby setup.rb

gem 安装 Redis,命令窗口切换到 Redis 安装目录,执行:

gem install redis

Window下搭建Redis集群

3)、测试

命令窗口执行:

gem -v

正常显示版本号表示安装成功。
Window下搭建Redis集群

5、复制 《redis-trib.rb》 脚本

1)、下载 redis 源码

http://www.redis.net.cn/download/

Window下搭建Redis集群

2)、复制

redis-trib 位于 Redis 源码的 src 文件夹中,将其复制到任一 redis 节点目录下
Window下搭建Redis集群
Window下搭建Redis集群

6、启动集群

1)、启动Redis服务

启动每个节点下的 start.bat 脚本

2)、启动集群

切换到redis目录在命令窗口中执行:

redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384

Window下搭建Redis集群

输入

yes

Window下搭建Redis集群

7、测试

从客户端的查看集群的信息,cluster_state为true表示启动成功。

cluster info

Window下搭建Redis集群

查看节点信息

cluster nodes

Window下搭建Redis集群

至此环境搭建完成。

8、重启集群

1、备份所有节点 .aof .rdb nodes_xx.conf 三个文件
2、启动所有节点
3、创建集群

9、集群动态扩展

1)、增加一个主节点(todo)
①、将需要添加的新节点启动
②、将新节点添加到集群中(默认为主节点,但无哈希槽)

格式:redis-trib.rb add-node 新节点ip:port 原任意一个节点ip:port

redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379
redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379

③、客户端查看

cluster nodes

Window下搭建Redis集群

④、移动哈希槽,选中任意一个 redis 服务即可

redis-trib.rb reshard 127.0.0.1:6379

Window下搭建Redis集群

需要移动多少哈希槽,输入

1000

Window下搭建Redis集群

移动到哪个节点,输入新节点的ID
Window下搭建Redis集群

指定移动哪几个点的哈希槽

1、all:所有的主节点中随机转移,凑够1000个哈希槽,然后输入 yes

【存在问题,见问题2】

Window下搭建Redis集群

2、ID + done:指定主节点移动

2、增加一个从节点

1)、将已存在节点设为从节点 或 修改从节点的主节点

redis-cli -c -p 6386 cluster replicate <master node-id>

Window下搭建Redis集群

2)、新增一个节点设为从节点

redis-trib.rb add-node --slave --master-id <master node-id> 127.0.0.1:6386 127.0.0.1:6379

3、删除主节点

1)、将主节点中哈希槽移动到其他主节点
2)、删除主节点

redis-trib del-node 127.0.0.1:6385 <master node-id>

4、删除从节点

从节点绑定的主节点被删除后,cluster nodes 命令显示从节点的ID由主节点ID改成从节点ID。

redis-trib del-node 127.0.0.1:6385 <slavenode-id>