一 所需软件
Redis、Ruby语言运行环境、Redis的Ruby驱动redis-xxxx.gem、创建Redis集群的工具redis-trib.rb
二 安装配置redis
redis下载地址 https://github.com/MSOpenTech/redis/releases ; 下载Redis。
集群规划有三个节点的集群,每个节点有一主一备。需要6台虚拟机。
把 redis 解压后,再复制出 5 份,配置 三主三从集群。 由于 redis 默认端口号为 6379,那么其它5份的端口可以为6380,6381,6382,6383,6384。 并且把目录使用端口号命名
打开每个目录下的 redis.windows.conf配置文件,修改里面的端口号,以及集群支持配置。
port 6379 //设置端口号
cluster-enabled yes //不为yes, 那么在使用JedisCluster集群代码获取的时候,会报错。
cluster-config-file nodes-6379.conf //调整为 15000,那么在创建集群的时候,不会超时。
cluster-node-timeout 15000 //是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录生成该文件。
appendonly yes //开启AOF持久化
requirepass 123456 //设置密码,如果不需要可以不设置
masterauth 123456 //对应主数据库的密码,如果设置了密码,而不设置此项,则从数据库连接主数据库的时候会报错:MASTER aborted replication with an error: NOAUTH Authentication required.
然后在每个文件夹中编写一个 bat 来启动 redis,在每个节点目录下建立 start.bat,内容如下:
title redis-
redis-server.exe redis.windows.conf
三 安装Ruby
redis的集群使用 ruby脚本编写,所以系统需要有 Ruby 环境 ,下载地址 http://dl.bintray.com/oneclick/rubyinstaller/,打开后找版本对应的exe文件下载
安装时3个选项都勾选。
四 安装Redis的Ruby驱动redis-xxxx.gem
下载地址 https://rubygems.org/pages/download, 下载后解压,然后到解压的目录中执行setup.rb。
然后GEM 安装 Redis :切换到redis的安装目录,需要在命令行中,执行一次 gem install redis
五 安装集群脚本redis-trib
下载地址 https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb
打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb,建议保存到一个Redis的目录下,例如放到6379目录下。
六 启动每个节点并且执行集群构建脚本
把每个节点下的 start.bat双击启动, 在切换到redis目录在命令行中执行
redis-trib.rb create --replicas 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1:
--replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个,所以我们用了6个redis
备注:有朋友反应上面的语句执行不成功。可以在前面加上ruby再运行。
ruby redis-trib.rb create --replicas 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1: 127.0.0.1:
在出现 Can I set the above configuration? (type 'yes' to accept): 请确定并输入 yes (注意是yes不是y,否则以后会报错CLUSTERDOWN The cluster is down)。成功后的结果如下:
注意:如果之前设置redis.windows.conf文件的时候设置了密码,则会报错
解决办法是找到文件:\Ruby23-x64\lib\ruby\gems\2.3.0\gems\redis-4.0.1\lib\redis\client.rb,打开后修改password为之前设置的密码:
七 测试
使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息
命令 redis-cli –c –h ”地址” –p "端口号" -a "密码" ; c 表示集群
输入dbsize查询 记录总数
输入cluster info可以从客户端的查看集群的信息
参考: