Redis官方不支持Windows,可是Microsoft Open Tech group在 GitHub上开发了一个Win64的版本,下载地址为:node
下载Redisredis
启动服务算法
redis-server redis.windows.conf
windows
客户端链接ruby
redis-cli.exe -h 127.0.0.1 -p 6379
服务器
安装Ruby,Windows能够安装RubyInstaller,下载地址:
http://railsinstaller.org/enapp
gem install rediscurl
执行 gem install redis 出现 SSL Connect error时,是由于ruby 没有包含 SSL 证书,因此 https 的连接被服务器拒绝。测试
解决方法很简单,首先在这里下载证书 http://curl.haxx.se/ca/cacert.pem, 而后再环境变量里设置 SSL_CERT_FILE 这个环境变量,并指向 cacert.pem 文件。url
要让集群正常运做至少须要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其他三个则是各个主节点的从节点。
主节点崩溃,从节点的Redis就会提高为主节点,代替原来的主节点工做,崩溃的主Redis回复工做后,会成为从节点
1). 建立Redis集群目录
在redis安装的根目录下建立6个以端口命名的文件夹
mkdir 7000 7001 7002 7003 7004 7005
2). 更改配置
将六个文件夹下的redis.windows.conf文件中如下属性进行修改:
port 7001(对应文件夹的端口号) cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
dir C:\Java\Redis\7000\ --对应的端口目录
3). 启动6个redis服务
进入每一个端口命名的文件夹下启动服务
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
这个命令在这里用于建立一个新的集群, 选项–replicas 1 表示咱们但愿为集群中的每一个主节点建立一个从节点。以后跟着的其余参数则是这个集群实例的地址列表,3个master3个slave
redis-trib 会打印出一份预想中的配置给你看, 若是你以为没问题的话, 就能够输入 yes ,redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通信。
5). 链接集群进行测试
链接集群的指令:
set name 0000
get name
redis-cli.exe -c 7001
get name
显示 0000 则表群集建立成功
redis-cli.exe -c -p 7000
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上的配置就完成了!