(六)Redis(Windows)集群配置 Redis Cluster

参考文章:http://doc.redisfans.com/topic/cluster-tutorial.html

Redis 集群的数据分片
     Redis 集群没有使用一致性hash, 而是引入了 哈希槽的概念.
     Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,      举个例子,比如当前集群有3个节点,那么:
     节点 A 包含 0 到 5500号哈希槽.
     节点 B 包含5501 到 11000 号哈希槽.
     节点 C 包含11001 到 16384号哈希槽.
     这种结构很容易添加或者删除节点. 比如如果我想新添加个节点D, 我需要从节点 A, B, C中得部分槽到D上. 如果我像移除节点     A,需要将A中得槽移到B和C节点上,然后将没有任何槽的A节点从集群中移除即可. 由于从一个节点将哈希槽移动到另一个节点       并不会停止服务,所以无论添加删除或者改变某个节点的哈希槽的数量都不会造成集群不可用的状态.


Redis 集群的数据分片
    Redis 集群没有使用一致性hash, 而是引入了 哈希槽的概念.
    Redis 集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽.集群的每个节点负责一部分hash槽,       举个例子,比如当前集群有3个节点,那么:
    节点 A 包含 0 到 5500号哈希槽.
    节点 B 包含5501 到 11000 号哈希槽.
    节点 C 包含11001 到 16384号哈希槽.
     这种结构很容易添加或者删除节点. 比如如果我想新添加个节点D, 我需要从节点 A, B, C中得到部分槽到D上. 如果我想移除节      点A,需要将A中的槽移到B和C节点上,然后将没有任何槽的A节点从集群中移除即可. 由于从一个节点将哈希槽移动到另一个节        点并不会停止服务,所以无论添加删除或者改变某个节点的哈希槽的数量都不会造成集群不可用的状态.

 

一、下载Redis:https://github.com/MicrosoftArchive/redis/releases,Redis-x64-3.2.100.zip

将下载的文件解压缩到目录:C:\software\tool\redis\Redis-x64-3.2.100

执行命令:redis-server.exe redis.windows.conf启动服务器

再打开一个cmd命令启动客户端:

 

redis-cli.exe -p 6379


二、安装Ruby http://railsinstaller.org/en

 

下载成功后直接安装,最后弹出一个cmd框,执行gem install redis命令,可能会出现异常不用管,这是因为Ruby缺少SSL证书的原因,下载正式:http://curl.haxx.se/ca/cacert.pem,然后设置环境变量SSL_CERT_FILE

三、要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。

(1)主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点

创建集群目录以端口号命名,安装的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)分别进入六个文件夹下启动服务

 

 

redis-server.exe redis.windows.conf

(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: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


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


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

 

 

 

(5)连接集群测试

 

redis-cli.exe -c -p 7001

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的集群,但是大家可能也会想到这样的配置是没有密码验证的(在配置集群服务之前是不能配置密码的否则会验证不能通过),要新增上密码验证就需要修改redis.windows.conf配置文件:

masterauth 619868
requirepass 619868

然后重启各个服务再连接服务端的时候就需要密码验证了;


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值