关于redis:Windows环境下搭建Redis集群

4次阅读

共计 3125 个字符,预计需要花费 8 分钟才能阅读完成。

最近因我的项目须要搭建 Redis 集群。查找了一些相干博文和材料,踩了不少坑。上面是自己总结的 Redis 集群搭建步骤和搭建过程中遇到的坑,心愿对大家有帮忙。篇幅有点长,请急躁看。

1   下载安装 Redis

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

装置过程比较简单,根本都是默认选项,不在赘述。能够自定义批改装置目录。(自己习惯性装置在 D:Program Files 目录下。)

2   创立 Redis 集群节点

Reids 集群工作至多须要 6 个节点:其中 3 个为主节点,其余 3 个是各个主节点的从节点。主节点解体,从节点会主动被推选为主节点,代替主节点工作。

因自己条件无限,只能在一台机器上模仿 6 个 Redis 节点,别离对应地址和端口如下:

127.0.0.1:6380

127.0.0.1:6381

127.0.0.1:6382

127.0.0.1:6383

127.0.0.1:6384

127.0.0.1:6385

(Note:生产环境下,每个节点须要部署在独立的服务器上。如果部署在一台服务器上,那么只有服务器宕机,整个集群就无奈失常工作,不具备高可用性。)

2.1   配置节点

装置实现后,创立文件目录 D:RedisCluster,同时创立 6 个 Redis 节点文件夹(以端口命名,不便记忆而已)。

复制 D:Program FilesRedis 目录下所有文件到 D:RedisCluster6380 目录下。配置 6380 节点。将 redis.windows-service.conf 文件重命名为 redis.windows-service.6380.conf(重命名是为了不便辨别,不重命名应该也能够)。批改配置项如下:

port 6380

loglevel notice

appendonly yes

appendfilename "appendonly.6380.aof"

cluster-enabled yes

cluster-config-file nodes.6380.conf

cluster-node-timeout 15000

cluster-slave-validity-factor 10

cluster-migration-barrier 1

cluster-require-full-coverage yes

(其余节点依照上述步骤配置,上述配置项中 6380 全副改为对应节点端口号即可,其余配置项保持一致)

2.2 装置节点服务

配置实现后,须要将 6 个节点注册成服务。在 6380 节点目录下(即:D:RedisCluster6380)关上 CMD,运行如下命令:

redis-server –service-install D:RedisCluster6380redis.windows-service.6380.conf –service-name Redis6380

排坑一:原本筹备将 Redis 节点放在 Redis 装置目录下(即:D:Program FilesRedis),然而因为全门路蕴含 Program Files 文件夹,两头有空格,导致在运行上述指令时,总是报错:

Invalid argument during startup: Failed to open the .conf file: FilesRedis6390redis.windows-service.6390.conf CWD=D:Program FilesRedis6390

起初,从新创立集群节点目录(即:D:RedisCluster6380),运行命令就失常了。

其余节点反复运行命令即可,如下图:

运行实现后,关上 Windows 零碎服务查看,6 个 Redis 节点服务曾经装置胜利。启动所有节点服务。

3 下载安装 Ruby

3.1 下载安装 Ruby

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



3.2 装置 Redis 驱动

下载 Ruby 环境下的 Redis 驱动,下载地址:https://rubygems.org/gems/redis/versions/3.3.2

将下载的 Redis 驱动文件 redis-3.3.2.gem 复制到 Ruby 装置目录下(即:C:Ruby30-x64),关上 CMD,运行如下命令:

gem install –local C:Ruby30-x64redis-3.3.2.gem

运行后果如下图,示意 Redis 驱动已装置胜利。

4 创立 Redis 集群

4.1 下载 redis-trib.rb(redis 集群管理工具)

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

下载后解压,并将文件复制到 6380 节点(即:D:RedisCluster6380)目录下

4.2 创立 Redis 集群

排坑二:在运行上面命令之前,不要设置 Redis 的集群明码。否则,会抛出无奈关上节点异样。设置明码,能够在集群搭建实现之后设置。后续有介绍。

在 6380 节点目录下关上 CMD,运行命令如下:

redis-trib.rb create –replicas 1 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

(replicas 1 示意为集群中的每个主节点创立 1 个从节点)

上图能够看出:

主节点 从节点
6380 6383 0-5460
6381 6384 5461-10922
6382 6385 10923-16383

提醒 Can I set the above configuration? (type ‘yes’ to accept),示意“是否采纳以上配置信息进行设置”。须要手动输出 yes,提醒如下图信息,示意集群装置胜利。

4.3 验证集群运行状态

运行如下命令,查看集群节点运行状态

redis-cli -c -h 127.0.0.1 -p 6380

cluster nodes

运行命令:set test 1

Redis 集群会依据 Key 值(test)计算出对应的槽,并重定向到对应的 Redis 节点,如下图,显示重定向到 6384 节点。如果集群配置了 requirepass,会提醒“(error) NOAUTH Authentication required.”, 示意须要登录认证。

运行认证命令:auth 12345678

运行之后,通过 set 和 get 命令验证 Redis 集群工作是否失常。如下图所示:

4.4 验证 Redis 集群机制

手动将其中 1 个主节点服务进行,例如 6381。

再通过命令行查看集群状态。6381 节点曾经是 fail 状态,6381 节点的从节点 6384 被推选为主节点。阐明 Redis 集群工作机制失常。

5 设置 Redis 集群明码

进行所有 Redis 节点服务。

批改 redis.windows-service.6380.conf 配置文件,设置集群明码(Note:每个节点都须要设定明码且明码必须雷同),留神集群模式下,上面两行都须要设置。

requirepass 12345678

masterauth  12345678

默认配置项前都有“#”示意该配置项时正文状态。去掉“#”, 输出明码即可。


设置实现后,启动所有 Redis 节点服务。

参考资料:

https://blog.csdn.net/kimihong/article/details/105171243

https://www.cnblogs.com/zhangrui153169/p/12837903.html

https://blog.csdn.net/tangyaliang11/article/details/78659473

https://www.modb.pro/db/15229

正文完
 0