您的位置:首页 > 数据库 > Redis

Redis实战之Windows Redis 集群搭建(一)

2017-04-19 14:55 776 查看
一、开发环境

win7 X86、Redis 3.2.100、Ruby 2.2.6。

二、 Redis 安装

Redis官网不支持Windows,但可从 GitHub上下载Microsoft Open Tech group开发的Win64的版本。



下载地址:https://github.com/MSOpenTech/redis

将 redis-server.exe、redis-cli.exe 拷贝至目录:C:\Redis。

为方便读者,已将本文所有工具打包汇总,

下载地址:Windows Redis 集群搭建工具汇总

三、RubyInstaller 安装

下载地址:http://rubyinstaller.org/downloads/

安装时,勾选一下三个选项,可避免额外配置环境变量:



四、Redis-trib.rb 下载

下载地址:

https://raw.githubusercontent.com/antirez/redis/unstable/src/redis-trib.rb

存储目录: C:\Redis

五、Rubygems 安装,Redis 的 Ruby 支持环境

1、下载地址:https://rubygems.org/(笔者采用Rubygems-2.6.11)

2、解压后,运行文件setup.rb。

3、添加 Gem 源:

由于国内网络原因,导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败,所以会与遇到 gem install rack 或 bundle install 的时候半天没有响应。解决办法如下:

1)移除掉 rubygems.org:

gem sources –remove https://rubygems.org/

2)换成 ruby-china 镜源:

gem sources -a http://gems.ruby-china.org/

3)查看已存在的源:

gem sources -l



4)安装 Redis 依赖

gem install redis





在步骤2)中,某些读者可能参照其他博文,采用淘宝镜源:

gem sources -a https://ruby.taobao.org

出现错误提示如下:



这是因为:taobao Gems 源已停止维护,现由 ruby-china 提供镜像服务。

六、使用Redis cluster

要让集群正常运作,至少需要三个主节点,因此我们创建6个节点,三个主节点三个从节点。创建步骤如下:

1、C:\Redis目录下,创建6个文件夹:7000—7005。

2、创建配置文件 redis.conf。

以7000文件夹为例:

port 7000

cluster-enabled yes

cluster-config-file nodes-7000.conf

cluster-node-timeout 5000

appendonly yes

其他文件只需将 port 和 cluster-config-file 改成相应的即可

命令分析:

1)cluster-enabled:开启实例的集群模式。

2)cluster-conf-file:设定保存节点配置文件的路径, 默认值为nodes.conf 。nodes.conf 节点配置文件无须人为修改, 而由 Redis 集群在启动时自动创建, 并在有需要时自动进行更新。

3)cluster-node-timeout:若半数以上master节点与故障节点通信超过(cluster-node-timeout),则认为该节点故障,自动触发故障转移操作。(单位:毫秒)

4)appendonly:开启后,每当Redis 执行一个改变数据集的命令时(比如SET),此命令会被追加到 AOF 文件的末尾。这样的话,当Redis 重新启时,程序就可以通过重新执行AOF 文件中的命令来达到重建数据集的目的。

3、C:\Redis目录下,创建启动脚本 start.bat

脚本命令如下:

@echo off

cd c:\Redis

start Redis-Server ./7000/redis.conf

start Redis-Server ./7001/redis.conf

start Redis-Server ./7002/redis.conf

start Redis-Server ./7003/redis.conf

start Redis-Server ./7004/redis.conf

start Redis-Server ./7005/redis.conf

4、创建集群

1)运行脚本 start.bat,会打开6个窗口,每个窗口承载一个 Redis 实例,端口从 7000 至 7005。同时,在 C:\Redis 文件夹下会出现 nodes-7000.conf 至 nodes-7005.conf 6个文件。

2)启动 cmd,切换至 C:\Redis目录,执行命令:

redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005


命令分析:

1)redis-trib.rb create:表示希望创建一个新的集群。

2)replicas 1:表示为集群中的每个主节点创建一个从节点。后面其他参数表示实例的地址列表, 即:程序将使用这些地址所指示的实例来创建新集群。(节点角色由顺序决定,先master之后是slave。)

简单来说,上述命令指示 redis-trib 程序创建一个包含三个主节点和三个从节点的集群。



执行命令后,首先打印出配置信息。上图表示:

1)使用7000、7001、7002作为主节点。

2)主从节点的对应关系。

3)各节点对应的 slots 范围。

例如 7000 这台机 slots : 0-5460 的意思是:

若 key 进行 CRC16 校验和的值介于 0-5460 范围内,则被存储至7000。

因此,使用前应对业务进行梳理,根据系统中 key 的特点来调整各个机器的slots范围,以避免 key 集中于部分机器上,以致集群的效果不大。

确认配置信息后,输入 yes 并回车确认, 集群将配置应用到各个节点, 并连接起(join)各个节点 —— 也即是, 让各个节点开始互相通讯。



配置成功后,redis-trib 将输出以下信息:



这表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。

创建成功后,nodes-*.conf 将存储 master 和 slave 的对应关系。以 nodes-7000.conf 为例:



上图表示:当前节点(127.0.0.1:7000)节点ID:cb4ea842827dd927058ec5b3abd516f35c697006,主节点,节点编号为1,对应 slots 的范围:0-5460,对应的从节点:127.0.0.1:7003。

七、进入集群环境

C:\Redis>redis-cli -c -p 7000

八、测试

1、检查集群状态

C:\Redis> redis-trib.rb check 127.0.0.1:7000



若输出上述信息,则表示集群启动成功并处于ok状态。

2、从port 7003 set一个值,并从port 7005 get出来



九、参考资料

[1] http://www.jianshu.com/p/22af55518f6d

[2] http://www.cnblogs.com/xling/p/5253063.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis