window 环境 redis cluster 搭建

前言

在 window 环境搭建一个 redis cluster, 这种教学式安装博客有很多. 自己也是参照了一些搭建成功的. 本篇也记录一下完整步骤, 如果参照了还没成功, 请告知.
既然是给各位参考, 索性也将工具包共享给大家. 以免因为网络原因阻碍学习的热情. 一键直达

1. 所需软件

  • Redis-x64-3.2.100
  • Ruby 语言运行环境
  • Redis 的 Ruby 驱动 redis-xxxx.gem
  • Redis 集群脚本 redis-trib.rb
  • 创建一个独立的 redis-cluster目录, 便于查找归纳, 下面的例子也是上面的将软件放在此目录进行配置. 例如: 在 D 盘创建一个 redis-cluster 目录

2. 工具的准备

  • Redis 下载地址
    在这里插入图片描述
    下载 zip 包, 便于扩展, 解压之后 放入 redis-cluster 目录中, 备用

  • 安装 Ruby

    redis 的集群使用, ruby 脚本编写, 所以系统需要有 Ruby 环境 ,下载地址
    在这里插入图片描述
    按图示下载, 安装时默认选项都勾选即可

  • 安装 Redis 的 Ruby 驱动 redis-xxxx.gem 下载地址, 按图示下载即可
    在这里插入图片描述
    下载解压至 redis-cluster 目录下. 最终目录如: .\redis-cluster\rubygems-2.7.7

  • Redis 集群脚本, 文件名: redis-trib.rb
    可以直接从 (redis-3.2.0.tar) 的源码压缩包中的 src 文件夹下找到对应的 redis-trib.rb 文件. 源码包下载地址, 将集群文件 redis-trib.rb 拷贝到 .\redis-cluster 目录下即可

3. 开始配置

  1. redis cluster 示例配置
    Redis 集群正常运作至少需要3个主节点.
    本案例中按照官网推荐的模式, 配置3个主节点,添加3个作为各个主节点的从节点, 共配置了 6个 redis 实例, 端口分别设置为 7001 ~ 7006 .
    集群模式下主节点崩溃,从节点的 Redis 就会提升为主节点,代替原来的主节点工作. 崩溃的主 Redis 恢复工作后, 成为从节点.

    复制一份 Redis-x64-3.2.100 , 改名为 7001,

    进去找到配置文件 redis.windows.conf 进行以下配置:

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

    同时添加 start.bat 文件, 便于快速启动服务.

    title redis-7001
    redis-server.exe redis.windows.conf
    

    剩下的端口请参照 7001 实现修改, 注意端口不要配置错了.
    完成之后目录如下:
    在这里插入图片描述

  2. 安装 ruby 驱动
    cmd 进入 .\redis-cluster\rubygems-2.7.7 目录下 (或者先进入到 rubygems-2.7.7 目录,按住 shift, 鼠标点击右键, 点击 “在此处打开命令行窗口(w)”), 执行以下命令行

    ruby setup.rb
    

    执行成功之后.
    使用 GEM 安装 redis, 首先需要配置一下 rubygems 域名, 默认 rubygems 域名 https://rubygems.org/ 国内打不开,而 https://ruby.taobao.org/ 域名已经发生变化,使用新域名 https://gems.ruby-china.com/
    在这里插入图片描述
    执行指令

    gem sources --add https://gems.ruby-china.com/
    

    修改成功之后, 再执行

    gem install redis
    

4. 启动

分别执行 redis 实例下的 start.bat , 如 7001 启动界面
在这里插入图片描述
进入到 .\redis-cluster 目录, 执行

ruby redis-trib.rb create --replicas 1 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 127.0.0.1:7006

启动界面如下:
在这里插入图片描述
redis cluster 启动时先分配 master slave, 然后它会询问你是否采用它的配置方式(见 红框 一行), 输入 “yes” 即可. 看到 OK 信息, 那么代表启动成功.

5. 测试

再打开一个命令窗口, 进入 ./redis-cluster/7001 目录, 输入以下命令, 启动客户端

redis-cli.exe –c –h 127.0.0.1  -p 7001

输入" cluster nodes " :列出集群当前已知的所有节点( node),以及这些节点的相关信息。
在这里插入图片描述
想要了解更多指令, 参考这个博文

测试set get方法
在这里插入图片描述
在这里插入图片描述
当进行 set ,get 不同的 key, redis 会计算key 的hash slot, 看看是落到哪台redis 实例中,然后会重定向到对应的实例

6. 问题

  1. 创建redis集群报错: ERR Slot 0 is already busy (Redis::CommandError)
    ​错误提示是说:slot插槽被占用了、这是因为 搭建集群前时,以前redis的旧数据和配置信息没有清理干净.
    解决方案:
    ​用 redis-cli 登录到每个节点执行 flushall 和 cluster reset 就可以了.
    ./redis-cli -h IP -p 端口
    flushall
    cluster reset
    
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值