bind 127.0.0.1 port 9000 loglevel warning #requirepass pwd cluster-enabled yes cluster-config-file nodes-9000.conf cluster-node-timeout 15000 appendonly yes #protected-mode no
redis-server.exe --service-install redis.windows-service-local.conf --service-name Name_Redis
验证服务是否正常运行:在redis文件夹目录中运行cmd窗口,输入以下命令便可 redis-cli.exe -h 127.0.0.1 -p 9000 auth pwd
如今官网下载的ruby最新版安装以后直接就带有gem了,不须要单独安装,查看版本号:ruby -v和gem -v 安装(安装目录不能包含中文,会出现莫名其妙的问题)完成后修改【系统变量】: Path 须要配置 Ruby 的安装目录 Bin PATHEXT 须要配置 .RB;.RBW
ruby -v 显示:ruby 2.6.5
要让集群正常运做至少须要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点, 其中三个为主节点, 而其他三个则是各个主节点的从节点。
主节点崩溃,从节点的Redis就会提高为主节点,代替原来的主节点工做, 崩溃的主Redis回复工做后,会成为从节点。node
redis-server.exe redis.windows-service.conf
ruby setup.rb //有关更多详细信息和其余选项 ruby setup.rb --help
gem install redis
打开连接若是没有直接下载,可使用下载器直接下载,或者将页面内容另存为 redis-trib.rb 文件便可git
ruby redis-trib.rb create --replicas 1 192.168.1.120:9000 192.168.1.121:9000 192.168.1.120:9001 192.168.1.121:9001 192.168.1.120:9002 192.168.1.121:9002
对Redis节点进行密码保护时,仅保护其主端口上的通讯(默认为6379)。 群集总线上相互通讯的群集总线(默认端口+ 10000 = 16379)上的通讯不受保护。 所以,当单个节点受到保护时,Redis群集实际上并非受密码保护的。 所以,在Redis群集中的各个Redis节点上具备密码几乎不会增长安全性。 所以,redis-trib.rb实用程序还没有实现任何身份验证。
WARNING: redis-trib.rb is not longer available! You should use redis-cli instead. All commands and features belonging to redis-trib.rb have been moved to redis-cli. In order to use them you should call redis-cli with the --cluster option followed by the subcommand name, arguments and options. Use the following syntax: redis-cli --cluster SUBCOMMAND [ARGUMENTS] [OPTIONS] Example: redis-cli --cluster create 127.0.0.1:9000 --cluster-replicas 1 To get help about all subcommands, type: redis-cli --cluster help
c:表示集群,必须在命令中加入-c,表示启用集群模式
redis-cli.exe -h 127.0.0.1 -c -p 9000
redis-cli.exe -c -p 9000github
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
被分配到了9001端口的redis服务上redis
至此,Redis Cluster在Windows上的配置就完成了算法