Window下搭建Redis集群
搭建含三个节点的集群,每个节点有一主一备。
1、部署
1、Redis下载
1)、下载
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
3)、复制节点
将 Redis 解压后文件复制出 5 份,配置三主三从集群。 分别重命名为 master6379、master6380,master6381,slave6382,slave6383,slave6384。(实际主备不安文件名区分)
3、安装Ruby
1)、下载
2)、安装
双击《rubyinstaller-2.3.3-x64.exe》开始安装。
安装时3个选项都勾选
3)、测试
命令窗口执行:。
ruby -v
正常显示 ruby 版本表示安装成功
4、安装Ruby驱动
1)、下载
2)、安装
解压文件,命令窗口切换到解压目录,执行:
ruby setup.rb
gem 安装 Redis,命令窗口切换到 Redis 安装目录,执行:
gem install redis
3)、测试
命令窗口执行:
gem -v
正常显示版本号表示安装成功。
5、复制 《redis-trib.rb》 脚本
1)、下载 redis 源码(可前往github搜索redis 3.2版本源码)
http://www.redis.net.cn/download/
2)、复制
redis-trib 位于 Redis 源码的 src 文件夹中,将其复制到任一 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
输入
yes
7、测试
从客户端的查看集群的信息,cluster_state为true表示启动成功。
cluster info
查看节点信息
cluster nodes
至此环境搭建完成。
8、重启集群
- 1、备份所有节点 .aof .rdb nodes_xx.conf 三个文件
- 2、启动所有节点
- 3、创建集群
9、集群动态扩展
- 1)、增加一个主节点(todo)
①、将需要添加的新节点启动
②、将新节点添加到集群中(默认为主节点,但无哈希槽)
格式:redis-trib.rb add-node 新节点ip:port 原任意一个节点ip:portredis-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 - ④、移动哈希槽,选中任意一个 redis 服务即可
redis-trib.rb reshard 127.0.0.1:6379
需要移动多少哈希槽,输入
1000
移动到哪个节点,输入新节点的ID
指定移动哪几个点的哈希槽
1、all:所有的主节点中随机转移,凑够1000个哈希槽,然后输入 yes【存在问题,见问题2】
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 哈希槽移动失败。