下载 Redis-x64-3.2.100
https://github.com/MSOpenTech/redis/releases
复制出8份,分别在两台服务器上作为多个节点,每台4节点。
从默认端口6379 后面增加3个
我的路径是下面所示
修改配置文件 redis.windows.conf (每个节点都修改,对应端口)
port 6380
bind 0.0.0.0 //这个表示允许任何主机访问(建议修改) 。
cluster-config-file nodes-6380.conf //是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录生成该文件。
cluster-enabled yes //如果cluster-enabled 不为yes, 那么在使用JedisCluster集群代码获取的时候,会报错。
cluster-node-timeout 15000 //调整为 15000,那么在创建集群的时候,不会超时。
appendonly yes
编写一个 bat 来启动 redis,在每个节点目录下建立 start.bat,内容如下:(每个节点都修改,对应端口)
title redis-6380
redis-server.exe redis.windows.conf
这样启动的会是一个cmd 窗口
你也可以添加 windows 服务来启动 ,建立 windows-server-install.bat ,内容如下:(每个节点都修改,对应端口)
redis-server.exe --service-install redis.windows.conf --service-name redis6380
安装Ruby
redis的集群使用 ruby脚本编写,所以系统需要有 Ruby 环境 ,下载地址 http://dl.bintray.com/oneclick/rubyinstaller/:rubyinstaller-2.3.3-x64.exe
安装时3个选项都勾选。
安装Redis的Ruby驱动redis-xxxx.gem
下载地址 https://rubygems.org/pages/download
解压后在解压目录里 shift+鼠标右键 打开 powershell 输入下面的命令安装
ruby setup.rb
然后GEM 安装 Redis :切换到redis安装目录,需要在命令行中,执行 gem install redis
如果报错 SSL_connect 错误请参考下面的解决方法,添加证书
https://blog.youkuaiyun.com/ysk575664647/article/details/52965737
安装集群脚本redis-trib.rb
redis下载:http://download.redis.io/releases/
下载对应的版本 解压后在 src 路径下 取出 redis-trib.rb 文件
将每个节点的 redis 都跑起来,然后执行后续操作
同样shift + 鼠标右键 打开 powershell 输入下面命令
ruby redis-trib.rb create --replicas 1 172.17.248.64:6379 172.17.248.64:6380 172.17.248.60:6379 172.17.248.60:6380 172.17.248.64:6381 172.17.248.64:6382 172.17.248.60:6381 172.17.248.60:6382
--replicas 1 表示每个主数据库拥有从数据库个数为1
确认输入 yes 回车
如果是多台服务器会出现下面的 等待加入的状态
需要你打开每个节点客户端去输入命令回复确认指令
.\redis-cli.exe -h 127.0.0.1 -p 6380 \\进入6380redis
cluster meet 127.0.0.1 6379 \\加入 6379 的集群
在redis文件目录下 shift + 鼠标右键打开 powershell 执行命令
看到下面信息表示创建成功
然后下载 redis图形化 管理工具
再此附上一个免费的破解版本,绿色安全可用
链接:https://pan.baidu.com/s/1K5Yd1OQ8nAofCl79Hp8r1A
提取码:528k
这个版本有 cluster 集群选项,所以用这个版本,之前版本好像没有
可以连接各个节点 添加键值 看到数据都是 一致的
集群重新搭建
如果你搭建失败了,或者测试想重新搭建,可以先关闭所有节点,删除各个节点下面的三个文件就好
tips:
查询各节点状态与从属关系
//redis文件目录 右键 powershell 输入下面命令
.\redis-cli.exe -h 127.0.0.1 -p 6380
//再输入下面
cluster nodes
最后测试遇到的问题:
1.在阿里云搭建会发现外网无法访问集群。内网的可以。
2.并没有像别人说的当挂掉的节点超过半数以上时集群不可用。当挂掉一两个节点,集群就不可用了,尤其是 6379 这种关键节点。
这篇文章也是参考了多位博主的文章所得,博客分别如下
https://www.cnblogs.com/super-chao/p/9329018.html
https://www.cnblogs.com/huxiansheng/p/11471373.html
https://www.cnblogs.com/hopeofthevillage/p/11534562.html