Redis集群安装教程(基于Ruby)

Redis集群安装教程(基于Ruby)

安装Redis

本教程使用:Redis-x64-3.2.100

下载地址:https://github.com/MicrosoftArchive/redis/releases

解压安装,并且复制6份,使用3主3从模式,将安装包名称修改为各自的端口名称

1592710243527

修改配置

找到Redis配置文件redis.windows.conf,修改内容如下,注意每个Redis都要修改:

port 7000 # 端口号,主:7000、7001、7002,从:8000、8001、8002
cluster-enabled yes # 是否启动集群
cluster-config-file nodes-6379.conf # 该节点的配置信息,这里使用 nodes-端口.conf命名方法,服务启动后会在目录生成该文件
cluster-node-timeout 15000 # 连接时间
appendonly yes # 开启AOF模式

在每个Redis下新建一个启动脚本,名称为startup.bat,内容如下:

title redis-7000 # title命名规则,redis-相对应的端口
redis-server.exe redis.windows.conf

安装Ruby

Redis的集群使用Ruby脚本编写,所以系统需要有Ruby环境

下载地址:https://rubyinstaller.org/downloads/

直接选择安装地址,下一步安装,本教程安装在redis集群的同级目录下

安装Rubygems

安装Redis的Ruby驱动redis-xxxx.gem,下载zip格式文件,解压到指定目录下

下载地址:https://rubygems.org/pages/download

cmd进入到D:\Redis\redis_cluster\rubygems-3.1.4,即驱动文件夹下,执行ruby setup.rb;

然后cmd进入到D:\Redis\redis_cluster\7000,即任意一个主Redis目录下,执行gem install redis

下载集群脚本

下载地址:https://github.com/beebol/redis-trib.rb

将redis-trib.rb放入到集群目录下,其实可以放到任意目录

执行startup.bat脚本启动所有的Redis,cmd进入D:\Redis\redis_cluster,即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:8000 127.0.0.1:8001 127.0.0.1:8002

--replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个,所以我们用了6个redis。

注意:如果出现redis-trib.rb is not longer available!  如果Redis版本是5.0以上,则应该使用如下命令:

redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:8000 127.0.0.1:8001 127.0.0.1:8002 --cluster-replicas 1

原因是redis5.0以上不再需要redis-trib.rb了,而是使用自带的redis-cli作为创建集群的命令了。

集群测试

由于每次一个一个启动太浪费时间,所以在D:\Redis\redis_cluster目录下创建一键启动脚本start.bat:

@echo off
start /d "D:/Redis/redis_cluster/7000" startup.bat
start /d "D:/Redis/redis_cluster/7001" startup.bat
start /d "D:/Redis/redis_cluster/7002" startup.bat
start /d "D:/Redis/redis_cluster/8000" startup.bat
start /d "D:/Redis/redis_cluster/8001" startup.bat
start /d "D:/Redis/redis_cluster/8002" startup.bat
pause

启动所有Redis之后,cmd进入7000端口的Redis,进入客户端

redis-cli -c -h localhost -p 7000

1592712398804

查看集群的信息,命令:cluster info

1592712477423

查看主从关系,命令:info replication

进入从Redis执行该命令,可以查看从Redis相关信息

1592713014836

查看各个节点分配slot,命令cluster nodes

1592713108717

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

测试存储,可以看到test存储到了7001,test1存储到了7000,并且从库也进行了数据存储

1592713578643

至此,Redis集群搭建完成,在项目中进行配置即可使用

posted @ 2018-08-13 15:45  肖德子裕  阅读(403)  评论(0编辑  收藏  举报