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