zoukankan      html  css  js  c++  java
  • Redis(1.13)Redis cluster 分布式集群手动配置

    【1】试验环境

    结构图如下:

      

    (这里试验没有那么多机器,就用3台机器搭建试验)

    redis1是redis集群的一个节点A,上面运行了两个redis实例,7001 7004

    redis2是redis集群的一个节点B,上面运行了两个redis实例,7002 7005

    redis3是redis集群的一个节点C,上面运行了两个redis实例,7003 7006

    -- 试验集群包含 A/B/C A1/B1/C1 6个节点

      A、B、C 为主节点对应Redis实例:7001 7002 7003

      A1、A2、A3 为主节点的从库,对应Redis实例:7004 7005 7006

    -- 交叉构建主从节点,对应关系为

      【A > B】  【B>C】  【C>A1】

        A:192.168.135.173

        B:192.168.135.174

        C:192.168.135.175

    -- IP与端口分布:

    cluster1:

      主:192.168.135.173 7001 /data/redis/redis-cluster/nodes-7001/redis.conf

      备:192.168.135.174 7005 /data/redis/redis-cluster/nodes-7005/redis.conf

    cluster2:

      主:192.168.135.174 7002 /data/redis/redis-cluster/nodes-7002/redis.conf

      备:192.168.135.175 7006 /data/redis/redis-cluster/nodes-7006/redis.conf

    cluster3:

      主:192.168.135.175 7003 /data/redis/redis-cluster/nodes-7003/redis.conf

      备:192.168.135.175 7004 /data/redis/redis-cluster/nodes-7004/redis.conf

    【2】清除现有集群

    如果有的话,才做这一步,没有的话,直接下一步【3】即可

    (2.1)清理现有数据

      #登录集群

        redis-cli -c -h 192.168.135.173 -p 7001

      #删除数据

        flushdb

    (2.2)删掉现有集群

      #停掉集群节点的redis服务,举例代码如下:

        《1》./startall.sh stop  《2》redis-cli -h 192.168.135.173 -p 7001

      #删掉集群节点的所有 aof/rdb/pid/nodes.conf,举例代码如下:

        rm -rf /data/redis/7001conf/{appendonly.aof,redis.rdb,redis.pid,nodes-7001.conf}

    【3】手动配置集群

    (3.1)启动各节点的redis服务

      案例代码如下:

      《1》./startall.sh start  《2》redis-server /data/redis/7001conf/7001redis.conf

    (3.2)登录集群,开始握手

    redis-cli -p 7001 -h 192.168.135.173 -c

    cluster meet 192.168.135.173 7001

    cluster meet 192.168.135.173 7004

    cluster meet 192.168.135.174 7002

    cluster meet 192.168.135.174 7005

    cluster meet 192.168.135.175 7003

    cluster meet 192.168.135.175 7006

    (3.3)查看节点

      cluster nodes

      #这个时候如果想操作,比如使用set test1 a,会报错 (error) CLUSTERDOWN Hash slot not served,说是还没有分配哈希槽来提供服务。

    (3.4)分配 16384个哈希槽

    主:

    redis-cli -h 192.168.135.173 -p 7001 cluster addslots {0..5461}

    redis-cli -h 192.168.135.174 -p 7002 cluster addslots {5462..10922}

    redis-cli -h 192.168.135.175 -p 7003 cluster addslots {10923..16383}

    (3.5)主从映射

    #登录上从库开始复制,利用cluster nodes 查看对应主库的 node_id

    (主从对应关系在【0】已经规划好,大致如:7001~7005,7002~7006,7003~7004)

      

    #cluster replicate 7001node_id
    redis-cli -h 192.168.135.174 -p 7005
    cluster replicate b7fcec9116ec14593e821104fa00ae8019d91054
    exit #cluster replicate 7002node_id redis
    -cli -h 192.168.135.175 -p 7006 cluster replicate 5de5cda4fb5ad46f1d7a67b75b04946a0c203ff5
    exit #cluster replicate 7003node_id redis
    -cli -h 192.168.135.173 -p 7004 cluster replicate 77ad3c48f3e8903d369c6190600aadfdbaa1ef20
    exit

    最终IP、主从、槽位 效果:

      

  • 相关阅读:
    2021NUAA暑假集训 Day3 题解
    2021NUAA暑假集训 Day2 题解
    2021NUAA暑期模拟赛部分题解
    CodeForces 1038D Slime
    UVA 11149 Power of Matrix
    UVA 10655 Contemplation! Algebra
    UVA 10689 Yet another Number Sequence
    HDU 4549 M斐波那契数列
    HDU 4990 Reading comprehension
    CodeForces 450B Jzzhu and Sequences
  • 原文地址:https://www.cnblogs.com/gered/p/11835480.html
Copyright © 2011-2022 走看看