Windows 配置Reids集群 Redis Cluster
1. 下载安装Redis
Redis官方不支持Windows,但是Microsoft Open Tech group在 GitHub上开发了一个Win64的版本,下载地址为:
https://github.com/MSOpenTech/redis/releases
解压之后,拷贝到自定义的Redis目录下,例如D:\dev\Redis
打开cmd,切换到Redis目录下,执行
redis-server redis.windows.conf
- 1
- 2
窗口不要关闭,再重新打开一个cmd窗口,连接Redis执行
redis-cli.exe -h 127.0.0.1 -p 6379
- 1
- 2
2. 安装Ruby并配置环境
安装Ruby,Windows可以安装RubyInstaller,下载地址:
http://railsinstaller.org/en
一直下一步安装完成会自动弹出一个cmd的黑色窗口,需要对Ruby进行配置
执行 gem install redis 出现 SSL Connect error时,是因为ruby 没有包含 SSL 证书,所以 https 的链接被服务器拒绝。
解决方法很简单,首先在这里下载证书 http://curl.haxx.se/ca/cacert.pem, 然后再环境变量里设置 SSL_CERT_FILE 这个环境变量,并指向 cacert.pem 文件。
3. 搭建Redis集群
要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。
主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点
1). 创建Redis集群目录
在redis安装的根目录下创建6个以端口命名的文件夹
mkdir 7000 7001 7002 7003 7004 7005
- 1
- 2
将安装的redis文件夹中的redis.windows.conf以及redis-server,分别拷贝到新建的六个文件夹中
2). 更改配置
将六个文件夹下的redis.windows.conf文件中以下属性进行修改:
port 7001(对应文件夹的端口号)
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
- 1
- 2
- 3
- 4
- 5
- 6
3). 启动6个redis服务
进入每个端口命名的文件夹下启动服务
cd 7001
redis-server.exe redis.conf
- 1
- 2
- 3
其他几个目录同上
4). 创建启动集群
由于创建启动集群需要redis-trib.rb文件,它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群,检查集群或者对集群进行重新分片(reshared)等工作。
Windows的redis安装文件中是没有这个文件的,我们需要去官网下载Redis,官网的Redis是Linux版本,在其源码src文件夹下,将redis-trib.rb拷贝到本机中Redis的安装目录中
最后进入redis-trib.rb文件所在目录执行:
ruby 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
- 2
这个命令在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave
redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯。
5). 连接集群进行测试
连接集群的指令:
redis-cli.exe -c -p 7000
- 1
- 2
Redis集群数据分配策略:
采用一种叫做哈希槽 (hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,当我们set一个key 时,会用CRC16算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上,具体算法就是:CRC16(key) % 16384
注意的是:必须要3个以后的主节点,否则在创建集群时会失败,三个节点分别承担的slot 区间是:
节点A覆盖0-5460;
节点B覆盖5461-10922;
节点C覆盖10923-16383.
- 1
- 2
- 3
- 4
所以上图中按照redis cluster的哈希槽算法:CRC16(‘name’)%16384
被分配到了7001端口的redis服务上。
至此,Redis Cluster在Windows上的配置就完成了!
文章来源:http://blog.csdn.net/mrxiagc/article/details/52799081#t2
源代码:https://pan.baidu.com/s/1bqUpDk7, 密码:p0mo
来源:oschina
链接:https://my.oschina.net/u/4268457/blog/4201372