Redis集群配置

Redis集群(Windows单机)

1、搭建准备

首先到 https://github.com/MSOpenTech/redis/releases 下载Redis-Windows版本Redis-x64-3.2.100.zip;下载好后解压,解压之后可看到这些文件:(注意目录不能有空格,否者会不能启动)
Redis集群配置

进入到解压目录,右键->打开命令窗口,输入 redis-server.exe redis.windows.conf 启动redis-server : (将redis.windows.conf默认端口号由6379改为7001,所以下图显示启动成功的端口号为7001)

看到如下界面说明启动redis server成功。
Redis集群配置

2.首先我们构建集群节点目录:

(集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。主节点崩溃,从节点的Redis就会提升为主节点,代替原来的主节点工作,崩溃的主Redis回复工作后,会成为从节点)

7001,7002,7003,7004,7005,7006对应的就是后面个节点下启动redis的端口。

拷贝开始下载的redis解压后的目录,并修改文件名(比如按集群下redis端口命名)如下:
Redis集群配置
title redis-7001;
redis-server.exe redis.windows.conf
然后保存为start.bat 下次启动时直接执行该脚本即可;
接着分别打开各个文件下的 redis.windows.conf,分别修改如下配置(举例修改7001文件下的redis.window.conf文件):

port 7001 //修改为与当前文件夹名字一样的端口号
protected-mode no #非保护模式
appendonly yes //指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。 yes表示:存储方式,aof,将写操作记录保存到日志中
bind 172.16.0.15 #绑定机器的内网IP,一定要设置呀老铁,不要用127.0.0.1
dir D:/Redis-x64-3.2.100/7001/ #指定工作目录,rdb,aof持久化文件将会放在该目录下,不同实例一定要配置不同的工作目录

cluster-enabled yes //开启集群模式
cluster-config-file nodes-6380.conf //保存节点配置,自动创建,自动更新(建议命名时加上端口号)
cluster-node-timeout 15000 //集群超时时间,节点超过这个时间没反应就断定是宕机
appendonly yes #开启AOF模式

后续部署不可能用控制台来host服务,下面介绍如何用把redis部署到服务当中,在控制台分别执行以下命令,请伙伴们注意你的服务名称要按照自己的需求修改。我这里直接Redis+端口来创建了

redis-server --service-install C:\Redis-x64-3.2.100\redis-cluster\7001\redis.windows.conf --service-name redis7001

3、下载Ruby并安装:

下载地址:http://railsinstaller.org/en
Redis集群配置
点击下载下来的文件 railsinstaller-3.4.0.exe安装,安装成功后对ruby进行设置,下面的图是安装后自动窗口提示信息
Redis集群配置
进入安装目录,执行 gem install redis,如下图安装成功
Redis集群配置

4、构建集群脚本redis-trib.rb.从redis对应版本的源码获取https://github.com/MicrosoftArchive/redis/releases下载源码,然后获取对应的

Redis集群配置
如下图,与redis集群节点保存在同一个文件夹下(比如我所有节点都存放在redis-cluster文件夹下)。
Redis集群配置
然后依次启动所有集群节点
D:\Redis-x64-3.2.100\redis-server.exe D:\Redis-x64-3.2.100\redis-cluster\7001\redis.windows.conf
Redis集群配置
然后cmd进入redis集群节点目录后,执行: (–replicas 1 表示为集群中的每个主节点创建一个从节点)
ruby D:\Redis-x64-3.2.100\redis-cluster\redis-trib.rb create --replicas 1 192.168.6.108:7001 192.168.6.108:7002 192.168.6.108:7003 192.168.6.108:7004 192.168.6.108:7005 192.168.6.108:7006

Redis集群配置
Redis集群数据分配策略:

采用一种叫做哈希槽 (hash slot)的方式来分配数据,redis cluster 默认分配了 16384 个slot,三个节点分别承担的slot 区间是:(上图3个M:节点的slots描述)

节点7001覆盖0-5460;
节点7002覆盖5461-10922;
节点7003覆盖10923-16383;
Redis集群配置
集群搭建并启动成功。

5、测试集群

进入任意一个集群节点,cmd执行
命令 redis-cli –c –h ”地址” –p “端口号”
Redis-cli –c –h 192.168.0.106 –p 7001
写入任意一个value,查询
Redis集群配置
如果出现连不上,查看对应端口是否开放或关闭防火墙的方式。

每次启动的后会生成一个nodes-7001.conf,再次启动之前先删除该文件,不然redis启动失败。刚开始搭建的时候就被坑了一下。。。。