Redis 版本: Redis-x64-3.2.10
操作系统: Windows 10 64位
Ruby 版本:Ruby-2.5.1-1 64位
RubyGems版本:2.7.6
尝试在windows系统上搭建一个入门级的redis集群,网上多数是Linux系统但无论是Linux上搭建还是在Windows上搭建过程基本一致。
一、Redis集群简介
1. redis3.0版本之前只支持单例模式,在3.0版本及以后才支持集群;
2. redis集群没有统一的入口,客户端连接集群中任何节点即可,多个redis节点网络互联,数据共享,每个节点都是一个redis实例;
3. 任何判断节点是否挂掉?redis-cluster为了实现集群的高可用,采用投票容错机制:如果集群中超过半数的节点投票认为该节点fail,那么这个节点就挂了。具体原理如图:
4. redis集群至少需要3个节点,因为集群要采用投票容错机制,所以2个节点无法构成集群;
二、搭建步骤
1. 下载Redis
2. 配置三主三从集群
将解压后的redis文件复制出五份,分别命名为redis6379、redis6380、redis6381、redis6382、redis6383、redis6384。
3. 修改redis配置文件
修改六份redis文件中的redis.windows.conf、redis.windows-service.conf两个文件,分别修改以下数据:
port 6379 //修改默认端口号
cluster-enabled yes //开启集群模式
cluster-config-file nodes-6379.conf //设定保存节点配置文件的路径,节点文件自动生成,无需修改
cluster-node-timeout 15000 //设置集群超时时间
appendonly yes //开启appendonly模式,redis将每次写操作请求追加到appendonly.aof文件中
注:两个文件的修改内容一样,数据前面不能留有空格
另外在每个文件中写入一个快速启动脚本,便于快速开启redis,内容如下:
title redis6379
redis-server.exe redis.windows.conf
开启所有reids启动脚本。
4. 安装ruby
下载ruby https://pan.baidu.com/s/1smx7za7jrJghRnxM5VZ-Uw 提取码:gi1i,下载完的rubyinstaller默认安装无需勾选其他选项。
5. 安装rubyGems
下载并解压(https://pan.baidu.com/s/1tDZYza872SrmCfuUneGCRw 提取码:mv5v),进入文件中运行setup.rb。
运行时可能会出现上面的错误,这是因为编码错误只需将registry.rb中的LOCALE = Encoding.find(Encoding.locale_charmap)修改成LOCALE = Encoding::UTF_8,保存再次运行。
6. 下载集群脚本redis-trib.rb
这个脚本没有太多约束可以在网上下载,也可以使用这个(https://pan.baidu.com/s/1KFZx4sbiZOO25DybU2qvGQ 提取码:qg02)
运行脚本执行命令redis-trib.rb create --replicas 1 127.0.0.1:6379 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,当出现Can I set the above configuration? (type 'yes' to accept),输入yes
create创建集群,--replicas参数指定集群中每个主节点配备几个从节点,这里设置为1。
目前为止redis集群就基本完成,当程序最后出现以下状态才算真正的搭建完成。
7. 测试集群
进入其中一个redis文件,这里以6379为例,输入命令redis-cli.exe -h 127.0.0.1 -p 6379 -c(h代表主机号,p代表端口号,c代表使用集群),输入set name hello, world,集群会自动保存并跳到6380,然后在6380中能get name取到刚刚存入的值。
8. 关闭集群
使用shutdown save|nosave关闭集群。