zoukankan      html  css  js  c++  java
  • 20210304. 0.3. Redis Cluster 搭建

    要求

    • 要求三主三从
    • 扩容
    • 缩容

    环境信息

    • Redis 版本:6.0.10
    • 虚拟机操作系统:CentOS 7

    集群信息

    安装目录

    /redis
    |--cluster
    |--|--7001 - 7008
    

    主从信息

    奇数为主,偶数为从

    • 7001 - 7002
    • 7003 - 7004
    • 7005 - 7006
    • 7007 - 7008

    操作步骤

    安装集群

    1. 新建安装文件夹,解压安装包

      mkdir /redis/cluster -p
      cd /redis/cluster/
      mkdir 7001
      
      cd /redis
      tar -xzvf redis-6.0.10.tar.gz
      
    2. 升级 GCC 版本

      # 查看gcc版本是否在5.3以上,centos7.6默认安装4.8.5
      gcc -v
      # 升级gcc到5.3及以上,如下:
      # 升级到gcc 9.3:
      yum -y install centos-release-scl
      yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
      scl enable devtoolset-9 bash
      
    3. 安装 Redis

      cd /redis/redis-6.0.10
      make
      make install PREFIX=/redis/cluster/7001
      cp /redis/redis-6.0.10/redis.conf /redis/cluster/7001/bin/
      
    4. 修改 redis.conf 配置文件

      # bind 127.0.0.1
      protected-mode no
      port 7001
      daemonize yes
      cluster-enabled yes
      cluster-config-file nodes-7001.conf
      pidfile /var/run/redis_7001.pid
      dir /redis/cluster/7001/data/
      
    5. 复制生成其他端口实例,并修改配置文件

      cd /redis/cluster
      cp -r 7001/ 7002
      cp -r 7001/ 7003
      cp -r 7001/ 7004
      cp -r 7001/ 7005
      cp -r 7001/ 7006
      cp -r 7001/ 7007
      cp -r 7001/ 7008
      
      # 生成的节点信息文件都在 /redis/cluster 目录下
      

      替换对应节点的配置文件中的配置:

      port 7001
      cluster-config-file nodes-7001.conf
      pidfile /var/run/redis_7001.pid
      dir /redis/cluster/7001/data/
      

      创建持久化文件所在目录:

      mkdir -p /redis/cluster/7001/data/
      mkdir -p /redis/cluster/7002/data/
      mkdir -p /redis/cluster/7003/data/
      mkdir -p /redis/cluster/7004/data/
      mkdir -p /redis/cluster/7005/data/
      mkdir -p /redis/cluster/7006/data/
      mkdir -p /redis/cluster/7007/data/
      mkdir -p /redis/cluster/7008/data/
      
    6. 启动所有 Redis 实例

      /redis/cluster/7001/bin/redis-server /redis/cluster/7001/bin/redis.conf
      /redis/cluster/7002/bin/redis-server /redis/cluster/7002/bin/redis.conf
      /redis/cluster/7003/bin/redis-server /redis/cluster/7003/bin/redis.conf
      /redis/cluster/7004/bin/redis-server /redis/cluster/7004/bin/redis.conf
      /redis/cluster/7005/bin/redis-server /redis/cluster/7005/bin/redis.conf
      /redis/cluster/7006/bin/redis-server /redis/cluster/7006/bin/redis.conf
      /redis/cluster/7007/bin/redis-server /redis/cluster/7007/bin/redis.conf
      /redis/cluster/7008/bin/redis-server /redis/cluster/7008/bin/redis.conf
      
    7. 创建 Redis 集群(创建时 Redis 里不要有数据)

      /redis/cluster/7001/bin/redis-cli --cluster create 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 --cluster-replicas 1
      
      # 以集群方式连接
      /redis/cluster/7001/bin/redis-cli -h 127.0.0.1 -p 7001 -c
      # 集群信息
      cluster info
      # 集群节点
      cluster nodes
      
      # 测试集群,通过查看集群转发
      set k1 v1
      set k2 v2
      set k3 v3
      set k4 v4
      

    集群扩容

    1. 集群扩容

      /redis/cluster/7001/bin/redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:7001
      
      # 7008 作为 7007 的从节点加入集群,最后的参数是 7007 的集群 id
      /redis/cluster/7001/bin/redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7007 --cluster-slave --cluster-master-id 1439a52999e3b678a8104bb5d1dda87434bd1746
      
      # 确认节点已加入
      /redis/cluster/7001/bin/redis-cli -h 127.0.0.1 -p 7001 -c
      cluster nodes
      
    2. 给 7007 分槽

      /redis/cluster/7001/bin/redis-cli --cluster reshard 127.0.0.1:7007
      
      # 7007 的 ID :
      # 1439a52999e3b678a8104bb5d1dda87434bd1746
      

    集群缩容

    1. 将槽分配出去

      /redis/cluster/7001/bin/redis-cli --cluster reshard 127.0.0.1:7001
      
    2. 删除集群节点,先删除从节点,后删除主节点

      /redis/cluster/7001/bin/redis-cli --cluster del-node 127.0.0.1:7008 69ac90b063478565b0aeb888871c2cd9acbbbb81
      /redis/cluster/7001/bin/redis-cli --cluster del-node 127.0.0.1:7007 1439a52999e3b678a8104bb5d1dda87434bd1746
      
  • 相关阅读:
    Linux文件权限
    Linux命令
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/huangwenjie/p/14480407.html
Copyright © 2011-2022 走看看