欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

redis之集群搭建 windows环境

程序员文章站 2022-05-21 23:53:31
...

搭建实例

1.基本配置 redis.windows.conf

搭建集群的第一件事情我们需要一些运行在 集群模式的Redis实例. 这意味这集群并不是由一些普通的Redis实例组成的,集群模式需要通过配置启用,开启集群模式后的Redis实例便可以使用集群特有的命令和特性了.

下面是一个最少选项的集群的配置文件:

port 7000
cluster-enabled yes
cluster-config-file nodes-7000.conf
cluster-node-timeout 5000
appendonly yes
appendfilename "appendonly-7000.aof"

文件中的 cluster-enabled 选项用于开实例的集群模式, 而 cluster-conf-file 选项则设定了保存节点配置文件的路径, 默认值为 nodes.conf.节点配置文件无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新。

2.建立文件

要让集群正常运作至少需要三个主节点,不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三个为主节点, 而其余三个则是各个主节点的从节点。

首先, 让我们进入一个新目录, 并创建六个以端口号为名字的子目录, 稍后我们在将每个目录中运行一个 Redis 实例: 命令如下:

mkdir redis-cluster
cd redis-cluster
mkdir 7000 7001 7002 7003 7004 7005

redis之集群搭建 windows环境

在文件夹 7000 至 7005 中, 各创建一个 redis-windows.conf 文件, 文件的内容可以使用上面的示例配置文件, 但记得将配置中的端口号从 7000 改为与文件夹名字相同的号码。

3.启动

将redis-server.exe 文件复制到redis-cluster下 ,然后在当前目录下执行 

.\redis-server.exe .\7000\redis.windows.conf 

启动redis服务

因为 nodes.conf 文件不存在, 所以每个节点都为它自身指定了一个新的 ID。实例会一直使用同一个 ID , 从而在集群中保持一个独一无二(unique)的名字。

[82462] 26 Nov 11:56:55.329 * No cluster configuration found, I'm 97a3a64667477371c4479320d683e4c8db5858b1 

 

搭建集群前准备

1.redis的集群工具使用 ruby脚本( redis-trib.rb )编写,所以使用该工具需要ruby语言环境的支持。

下载ruby download ,构建ruby环境(windows安装版,无需手动配置)

2.安装支持Redis的Ruby驱动,redis-4.0.01.gem文件

1)需要先下载rubygems,将rubygems解压到redis-cluster文件下

切换到F:\server\redis-cluster\rubygems-2.7.7\rubygems-2.7.7 下执行 ruby setup.rb 命令安装gem.exe文件

redis之集群搭建 windows环境

2)然后使用命令gem install redis 安装 redis第三方接口,使得ruby脚本能够识别redis,redis-4.0.1.gem安装成功

redis之集群搭建 windows环境

 

搭建集群的主从复制模型

使用ruby脚本文件(redis-trib.rb)构建集群

切换到redis-cluster目录

.\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

这个命令(更多命令需要熟悉redis-trib.rb)在这里用于创建一个新的集群, 选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。

之后跟着的其他参数则是这个集群实例的地址列表,3个master3个slave redis-trib 会打印出一份预想中的配置给你看, 如果你觉得没问题的话, 就可以输入 yes , redis-trib 就会将这份配置应用到集群当中,让各个节点开始互相通讯,最后可以得到如下信息:

[OK] All 16384 slots convered

这表示集群中的 16384 个槽都有至少一个主节点在处理, 集群运作正常。

redis之集群搭建 windows环境

我可以保持上述配置吗?选择yes

redis之集群搭建 windows环境

 

集群过程:

首先redis-trib.rb会以客户端的形式尝试连接所有的节点,并发送PING命令以确定节点能够正常服务。如果有任何节点无法连接,则创建失败。同时发送 INFO 命令获取每个节点的运行ID以及是否开启了集群功能(即cluster_enabled为1)。 准备就绪后集群会向每个节点发送 CLUSTER MEET命令,格式为 CLUSTER MEET ip port,这个命令用来告诉当前节点指定ip和port上在运行的节点也是集群的一部分,从而使得6个节点最终可以归入一个集群。

然后redis-trib.rb会分配主从数据库节点,分配的原则是尽量保证每个主数据库运行在不同的IP地址上,同时每个从数据库和主数据库均不运行在同一IP地址上,以保证系统的容灾能力

3主3从,当1个主故障,大家会给对应的从投票,把从立为主,若没有从数据库可以恢复则redis集群就down了。

 

 

测试

登录任意一节点 .\redis-cli.exe -c -h 127.0.0.1 -p 7002 (-c 表示集群)

cluster info 查看集群信息

redis之集群搭建 windows环境

cluster nodes 查看所有节点信息

redis之集群搭建 windows环境

参考

redis文档 Cluster板块

 

 

相关标签: redis 集群