Redis 集群主从配置环境搭建
本文以Windows系统搭建示例
Redis下载地址:https://github.com/MSOpenTech/redis/releases
下载解压后文件夹内容
在cmd下进入到刚解压的目录下,(或目录下shift + 右键,点击在此处打开命令行窗口),输入:redis-server.exe redis.windows.conf 启动redis-server
下面开始windows下集群搭建
1.首先构建集群节点目录(将刚下载的redis目录复制多份,我直接以端口命名了文件夹):
(集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点)
2 进入到每个端口节点文件夹目录下,创建文本文件,内容如下(目录和title根据自己的情况来):
将文本文件保存为.bat后缀的Windows执行文件
3 接下来修改各个节点下的redis配置文件中的参数的值(windows下 reds.windows.conf)
port 7000 //修改为与当前文件夹名字一样的端口号
appendonly yes //指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。 yes表示:存储方式,aof,将写操作记录保存到日志中
cluster-enabled yes //开启集群模式
cluster-config-file nodes-7000.conf //保存节点配置,自动创建,自动更新(建议命名时加上端口号)
cluster-node-timeout 15000 //集群超时时间,节点超过这个时间没反应就断定是宕机
注意:在修改配置文件这几项配置时,配置项前面不能有空格,否则启动时会报错
4 下载Ruby并安装:
下载地址:http://railsinstaller.org/en 这里下载的是2.3版本:
打开cmd命令行窗口,对ruby进行配置:
5 集群脚本redis-trib.rb创建集群
进入到之前创建的各个节点文件夹,执行写好的.bat启动文件,全部执行
命令行中进入到redis-trib.rb脚本所在文件夹,执行: 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
最终显示:
上图可看出 主节点为7000,70001,7002 端口的三个地址7003,7004,7005为三个从节点
Redis集群数据分配策略:
采用一种叫做哈希槽 (hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,三个节点分别承担的slot 区间是:(上图3个M:节点的slots描述)
节点6380覆盖0-5460;
节点6381覆盖5461-10922;
节点6382覆盖10923-16383
最后查看所有集群节点,会看到:
到这里,redis集群搭建完成
6.测试集群
进入任意一个集群节点,cmd执行 redis-cli.exe -c -p 6381 (需要加上-c参数,标识以集群模式启动)
写入任意一个value,查询
集群会用CRC16算法来取模得到所属的slot,然后将这个key分到哈希槽区间的节点上CRC16(key) % 16384
所以,可以看到我们set的key计算之后被分配到了不同的节点上。
End