windows下快速搭建redis集群

1.下载安装redis

(1)Redis官方不支持Windows,但是Microsoft Open Tech group在 GitHub上开发了一个Win64的版本,下载地址为:

https://github.com/MSOpenTech/redis/releases

解压后拷贝到自己的目录下:

例如我的path:G:\Tool\redis-windows-master

此时打开cmd命令窗口,换到Redis目录下,执行

redis-server redis.windows.conf

这时候默认的打开的redis是6379端口

(2)窗口不要关闭,再重新打开一个cmd窗口,连接Redis执行

redis-cli.exe -h 127.0.0.1 -p 6379

可以操作redis

这里写图片描述

  1. 安装Ruby并配置环境

(1)安装ruby的原因:

redis-cluster安装前需要安装ruby环境,搭建集群需要使用到官方提供的ruby脚本。

(2)安装Ruby,Windows可以安装RubyInstaller,下载地址:

http://railsinstaller.org/en

一直下一步安装完成会自动弹出一个cmd的黑色窗口,需要对Ruby进行配置。安装目录必须是英文的不能含有中文否则执行gem命令报错

(3)执行命令:

gem sources –remove https://rubygems.org/删掉原来的源

gem sources -a https://ruby.taobao.org添加淘宝源,注意为https,否则会找不到源

gem sources -l 查看现有的源

gem install redis 安装redis依赖

这里写图片描述

执行 gem install redis 出现 SSL Connect error时,是因为ruby 没有包含 SSL 证书,所以 https 的链接被服务器拒绝。

解决方法很简单,首先在这里下载证书http://curl.haxx.se/ca/cacert.pem, 然后再环境变量里设置 SSL_CERT_FILE 这个环境变量,并指向 cacert.pem 文件。

这里写图片描述

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

参考:http://doc.redisfans.com/topic/cluster-tutorial.html#id5

这里写图片描述

将安装的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

3). 启动6个redis服务

这里写图片描述

其他几个启动方法如上图。

注意:

使用批处理文件时,可以用下面方法打打多个CMD窗口,并且每个窗口中执行多条命令。

start 用来启动一个应用

cmd /k 表示cmd后面的命令执行完后不关闭窗口。如果要在执行完成后关闭窗口可以用/c 。详细请使用cmd/?查看

“命令1&&命令2&&..” 将要执行的多条命令使用引号全部包起来,并且在命令间用&&分隔。如果只有一条命令则不用引号也可以。

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

若嫌以后启动麻烦,可以自己编写一个启动redis集群的bat文件:

@echo off

start cmd /k "G:&&cd G:\Tool\redis-windows-master\7001&&redis-server.exe redis.windows.conf"

start cmd /k "G:&&cd G:\Tool\redis-windows-master\7002&&redis-server.exe redis.windows.conf"

start cmd /k "G:&&cd G:\Tool\redis-windows-master\7003&&redis-server.exe redis.windows.conf"

start cmd /k "G:&&cd G:\Tool\redis-windows-master\7004&&redis-server.exe redis.windows.conf"

start cmd /k "G:&&cd G:\Tool\redis-windows-master\7005&&redis-server.exe redis.windows.conf"

start cmd /k "G:&&cd G:\Tool\redis-windows-master\7006&&redis-server.exe redis.windows.conf"

start cmd /k "G:&&cd G:\Tool\redis-windows-master&&ruby redis-trib.rb create --replicas 1 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 127.0.0.1:7006"

exit

这里写图片描述

这个命令在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave

redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes ,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯。

5). 连接集群进行测试

连接集群的指令:

redis-cli.exe -c -p 7000

这里写图片描述

ava测试:

@Test

public voidtestRedis(){

JedisPoolConfig poolConfig =newJedisPoolConfig();

poolConfig.setMaxIdle(8);

Set nodes =newHashSet();

HostAndPort hostAndPort =newHostAndPort("127.0.0.1",7001);

HostAndPort hostAndPort1 =newHostAndPort("127.0.0.1",7002);

HostAndPort hostAndPort2 =newHostAndPort("127.0.0.1",7003);

HostAndPort hostAndPort3 =newHostAndPort("127.0.0.1",7004);

HostAndPort hostAndPort4 =newHostAndPort("127.0.0.1",7005);

HostAndPort hostAndPort5 =newHostAndPort("127.0.0.1",7006);

nodes.add(hostAndPort);

nodes.add(hostAndPort1);

nodes.add(hostAndPort2);

nodes.add(hostAndPort3);

nodes.add(hostAndPort4);

nodes.add(hostAndPort5);

JedisCluster jedisCluster =newJedisCluster(nodes,100000,poolConfig);//JedisCluster中默认分装好了连接池.

Map map =  jedisCluster.getClusterNodes();

jedisCluster.set("test","test");

System.out.println(jedisCluster.get("test"));

}

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.

所以上图中按照redis cluster的哈希槽算法:CRC16(‘name’)%16384

被分配到了7001端口的redis服务上。

至此,Redis Cluster在Windows上的配置就完成了!

windows环境下redis集群搭建搭建频繁如下: redis集群测试 01、安装Redis 02、创建6个目录Redis7001、Redis7002、Redis7003、Redis7004、Redis7005、Redis7006 03、把Redis目录下的redis.windows.conf文件分别复制到上创建创建的6个文件夹中 04、修改6个文件夹中的redis.windows.conf文件 a、修改端口,分别对应 700* b、绑定IP,这里使用的是一台电脑,都设置为127.0.0.1 c、指定数据文件(appendonly.aof)的存放位置,dir C:/MySoftPath/Java/Redis/Redis700*/ d、开启集群模式,cluster-enabled yes e、集群文件配制信息(不用设置路径,自动在对应的700*下面),cluster-config-file nodes-700*.conf f、超时时间,cluster-node-timeout 5000 g、开启aof模式,appendonly yes h、数据文件名称,appendfilename "appendonly.aof" 05、启动这6个redis 06、安装ruby环境(rubyinstaller-2.2.4-x64.exe),注意(安装所有模块),后台需要使用此环境。 07、下载ruby环境下Redis的驱动“redis-3.2.2.gem”。 08、把“redis-3.2.2.gem”放到ruby环境下进行驱动,在所在的目录运行【gem install --local redis-3.2.2.gem】 09、把redis-trib.rb集群工具放在redis目录下,使用此工具创建集群 10、创建Redis集群redis-trib.rb create --replicas 0 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 127.0.0.1:7006】 11、注意,如果第10步没有反应也不报错,在redis-trib.rb命令前面使用ruby 【ruby redis-trib.rb create --replicas.........】 12、最后配上别人的博客【http://www.cnblogs.com/tommy-huang/p/6240083.html】 。。。。。。。。。。。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值