Window下搭建Redis集群

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

1、部署
1、Redis下载
1)、下载

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

window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby

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 cluster集群 添加密码 windows下redis集群配置_windows_02

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

window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby_03

3、安装Ruby
1)、下载

https://rubyinstaller.org/downloads/

window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby_04

2)、安装
双击《rubyinstaller-2.3.3-x64.exe》开始安装。

window 下Redis cluster集群 添加密码 windows下redis集群配置_命令窗口_05

安装时3个选项都勾选

3)、测试
命令窗口执行:。

ruby -v

正常显示 ruby 版本表示安装成功

window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby_06

4、安装Ruby驱动
1)、下载

https://rubygems.org/pages/download

window 下Redis cluster集群 添加密码 windows下redis集群配置_windows_07

2)、安装
解压文件,命令窗口切换到解压目录,执行:

ruby setup.rb

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

gem install redis

3)、测试
命令窗口执行:

gem -v
正常显示版本号表示安装成功。

window 下Redis cluster集群 添加密码 windows下redis集群配置_命令窗口_08

5、复制 《redis-trib.rb》 脚本
1)、下载 redis 源码(可前往github搜索redis 3.2版本源码)
http://www.redis.net.cn/download/

window 下Redis cluster集群 添加密码 windows下redis集群配置_Redis_09

2)、复制
redis-trib 位于 Redis 源码的 src 文件夹中,将其复制到任一 redis 节点目录下

window 下Redis cluster集群 添加密码 windows下redis集群配置_windows_10


window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby_11

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

输入

yes

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

cluster info

window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby_12

查看节点信息

cluster nodes

window 下Redis cluster集群 添加密码 windows下redis集群配置_ruby_13

至此环境搭建完成。

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 cluster集群 添加密码 windows下redis集群配置_Redis_14

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

redis-trib.rb reshard 127.0.0.1:6379

window 下Redis cluster集群 添加密码 windows下redis集群配置_redis_15

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

1000

移动到哪个节点,输入新节点的ID

window 下Redis cluster集群 添加密码 windows下redis集群配置_命令窗口_16


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

1、all:所有的主节点中随机转移,凑够1000个哈希槽,然后输入 yes【存在问题,见问题2】

window 下Redis cluster集群 添加密码 windows下redis集群配置_Redis_17

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

2、增加一个从节点
1)、将已存在节点设为从节点 或 修改从节点的主节点

redis-cli -c -p 6386 cluster replicate

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

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

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

redis-trib del-node 127.0.0.1:6385

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

redis-trib del-node 127.0.0.1:6385

  • 2、问题
    1、window redis集群动态扩展时,redis3.2.100 哈希槽移动失败。