搭建redis集群


Windows、MacOS下Redis集群配置


Windows下Redis集群搭建

准备

  1. redis客户端
    GitHub地址
  2. ruby语言运行环境
    下载地址
  3. redis的ruby驱动
    下载地址
  4. Redis集群环境
    右键另存为

安装redis客户端

  1. 集群规划有五个节点的集群,每个节点有一主一备。需要10台虚拟机。

  2. 把 redis 解压后,再复制出 10 份,配置五主五从集群。

  3. 修改配置文件【redis.windows.conf】

    • 端口
      • redis 默认端口号6379留给单节点redis,设置端口为7000,7001,7002,7003,7004,7005,700,7007,7008,7009。并且把目录使用端口号命名
    • 其他配置
      • cluster-enabled调整为yes, 否则在使用JedisCluster集群代码获取的时候,会报错。取消注释
      • cluster-node-timeout 调整为 15000,那么在创建集群的时候,不会超时。取消注释
      • cluster-config-file nodes-6379.conf 是为该节点的配置信息,这里使用 nodes-端口.conf命名方法。服务启动后会在目录生成该文件。取消注释,修改文件名
  4. 编写redis启动器

    1. 命令窗口启动

      • 修改start.bat文件中title【cmd窗口标题】,内容如下

        title redis-7000
        redis-server.exe redis.windows.conf
      • 新增集群启动器redis-cluster.bat,内容示例

        cd 7000 &start start.bat    
        cd ../7001 &start start.bat   
        cd ../7002 &start start.bat    
        cd ../7003 &start start.bat    
        cd ../7004 &start start.bat
        cd ../7005 &start start.bat
        cd ../7006 &start start.bat
        cd ../7007 &start start.bat
        cd ../7008 &start start.bat
        cd ../7009 &start start.bat
    2. 配置redis为windows服务

      • cmd进入redis-7000目录,执行命令

        redis-server --service-install redis.windows.conf --service-name Redis7000 --loglevel verbose
      • 其他几个也同样操作

安装集群

  1. 安装RUBY

    • 双击运行
    • 勾选后两个选项
  2. 安装redis的ruby驱动
    使用rubygems是为了安装ruby的redis依赖

    • 解压
    • 在解压目录运行 ruby setup.rb 安装gem
    • gem安装redis
  3. 安装集群脚本


    • 放到一个redis目录
  4. 配置集群

    • 把每个节点下的 start.bat双击启动,记得检查目录下是否有appendonly.aof,nodes.*.conf和.rdb文件(持久化存储数据),删除他们

    • 切换到redis目录在命令行中执行

      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 127.0.0.1:7006 127.0.0.1:7007 127.0.0.1:7008 127.0.0.1:7009 

      备注:如果执行不成功。可以在前面加上ruby再运行 在出现 Can I set the above configuration? (type 'yes' to accept):

测试

  1. 使用Redis客户端Redis-cli.exe来查看数据记录数,以及集群相关信息
  2. 命令 redis-cli –c –h "地址" –p "端口号", -c 表示集群
  3. Cluster info 查看集群信息
  4. Dbsize 当前数据库的 key 的数量
    集群信息

可能错误

[ERR] Node 127.0.0.1:7000 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains
some key in database 0.

原因:删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb

卸载和重装

  1. redis-server –service-uninstall –service-name redis7000
  2. 删除对应的数据文件 appendonly.aof和配置文件 nodes-.*.conf
  3. 重新安装

MacOS下Redis集群搭建


  目录