zoukankan      html  css  js  c++  java
  • redis集群搭建

    redis集群搭建

    redis安装步骤
    tar xf redis-5.0.8.tar.gz -C /usr/local/
    cd /usr/local/
    cd redis-5.0.8/
    make
    make test
    yum -y install tcl
    make test
    make install
    mkdir /redis_cluster
    cd /redis_cluster/
    ll
    mkdir redis{7000..7007}
    ll
    cp /usr/local/redis-5.0.8/redis.conf ./redis7000/
    vim ./redis7000/redis.conf

    redis.conf

    port  7000                                        //端口7000,7002,7003        
    bind 本机ip                                       //改为其他节点机器可访问的ip 可以使用ifconfig查看一下
    daemonize    yes                               //redis后台运行
    appendonly  yes                           //aof日志开启  有需要就开启,它会每次写操作都记录一条日志
    pidfile  /var/run/redis_7000.pid          //pidfile文件对应7000,7001,7002
    cluster-enabled  yes                           //开启集群  
    cluster-config-file  nodes_7000.conf   //集群的配置  配置文件首次启动自动生成 7000,7001,7002
    cluster-node-timeout  15000                //请求超时  默认15秒,可自行修改
    ##分别配置各节点所需配置文件
    sed 's/7000/7001/g' redis.conf >/redis_cluster/redis7001/
    sed 's/7000/7001/g' redis.conf >/redis_cluster/redis7001/redis7001.conf
    sed 's/7000/7002/g' redis.conf >/redis_cluster/redis7002/redis7002.conf
    sed 's/7000/7003/g' redis.conf >/redis_cluster/redis7003/redis7003.conf
    sed 's/7000/7004/g' redis.conf >/redis_cluster/redis7004/redis7004.conf
    sed 's/7000/7005/g' redis.conf >/redis_cluster/redis7005/redis7005.conf
    sed 's/7000/7006/g' /redis_cluster/redis7000/redis.conf >/redis_cluster/redis7006/redis.conf
    sed 's/7000/7006/g' /redis_cluster/redis7000/redis.conf >/redis_cluster/redis7007/redis.conf
    ##分别启动redis服务
    [root@redis ~]#redis-server /redis_cluster/redis7000/redis.conf 
    [root@redis ~]#redis-server /redis_cluster/redis7001/redis.conf 
    [root@redis ~]#redis-server /redis_cluster/redis7002/redis.conf 
    [root@redis ~]#redis-server /redis_cluster/redis7003/redis.conf 
    [root@redis ~]#redis-server /redis_cluster/redis7004/redis.conf 
    [root@redis ~]#redis-server /redis_cluster/redis7005/redis.conf

    在这里插入图片描述

    [root@redis ~]#/usr/local/bin/redis-cli --cluster create 192.168.53.6:7000 192.168.53.6:7001 192.168.53.6:7002 192.168.53.6:7003 192.168.53.6:7004 192.168.53.6:7005 --cluster-replicas 1        //后面指定数字1 就是一主带一从,如果是2 就是一主两从

    在这里插入图片描述

    ##从节点不分配槽位

    ##增加节点
    redis-cli --cluster --help    //查看集群命令用法选项
    首先启动几点服务器
    [root@redis ~]# redis-server /redis_cluster/redis7006/redis.conf
    [root@redis ~]# redis-server /redis_cluster/redis7007/redis.conf
    [root@redis ~]# redis-cli --cluster add-node 192.168.53.6:7006 192.168.53.6:7003    //后面加的节点可以是随便集群里的节点,集群中的节点已相互认识,所以这个目的主要是meet的过程

    新增进来默认主节点,,,可以使用选项指定增加从节点

    在这里插入图片描述

    ##增加从节点,并指定为谁的从节点
    [root@redis ~]# redis-cli --cluster add-node 192.168.53.6:7007 192.168.53.6:7003 --cluster-slave --cluster-master-id d6e5fb707569777faee6453f42d99e541b62a2ac

    在这里插入图片描述

    迁移槽和数据

    • 槽迁移计划

      • 语法:redis-cli --cluster reshard 已存在节点IP:端口
      • redis-cli --cluster reshard 192.168.53.6:7002
    • 迁移数据

      • 执行流程:提示分配多少槽–》接收节点ID–》all/done

        [root@lb redis_cluster]# redis-cli --cluster reshard 192.168.53.6:7002
        >>> Performing Cluster Check (using node 192.168.53.6:7002)
        M: 7714e982654f9150f27e2e166dab532e61854aab 192.168.53.6:7002
           slots:[11089-16383] (5295 slots) master
           1 additional replica(s)
        S: 3dd9e0a6d413eb0582d4b039e7b2ec25a174add9 192.168.53.6:7007
           slots: (0 slots) slave
           replicates d6e5fb707569777faee6453f42d99e541b62a2ac
        S: 69066cbbef97b47c4ac597d971f8919e591049ab 192.168.53.6:7005
           slots: (0 slots) slave
           replicates 7714e982654f9150f27e2e166dab532e61854aab
        S: e5d1f88def599163e4e598a654c3de7a6568baef 192.168.53.6:7003
           slots: (0 slots) slave
           replicates 25b211495aef9f5b8b4dd5320695417367b652e8
        M: 5db4ceb0497b1eb11d94fd20fff0a530126b1021 192.168.53.6:7001
           slots:[5628-10922] (5295 slots) master
           1 additional replica(s)
        S: 26d3d64fe954633ebb81db01dc7865e32b5acb65 192.168.53.6:7004
           slots: (0 slots) slave
           replicates 5db4ceb0497b1eb11d94fd20fff0a530126b1021
        M: d6e5fb707569777faee6453f42d99e541b62a2ac 192.168.53.6:7006
           slots:[0-165],[5461-5627],[10923-11088] (499 slots) master
           1 additional replica(s)
        M: 25b211495aef9f5b8b4dd5320695417367b652e8 192.168.53.6:7000
           slots:[166-5460] (5295 slots) master
           1 additional replica(s)
        [OK] All nodes agree about slots configuration.
        >>> Check for open slots...
        >>> Check slots coverage...
        [OK] All 16384 slots covered.
        How many slots do you want to move (from 1 to 16384)? 500
        What is the receiving node ID? d6e5fb707569777faee6453f42d99e541b62a2ac        //分配得节点ID
        Please enter all the source node IDs.
          Type 'all' to use all the nodes as source nodes for the hash slots.
          Type 'done' once you entered all the source nodes IDs.
        Source node #1: all        //all是所有节点平均分配,也可输入指定节点分配
        ...
        
        

    在这里插入图片描述

    • 缩容集群

      • 下线迁移槽

        • 语法:redis-cli --cluster reshard --cluster-from 要迁出节点ID --cluster-to 接收槽节点ID --cluster-slots 迁出得数量 已存在节点ip 端口

        • redis-cli --cluster reshard --cluster-from d6e5fb707569777faee6453f42d99e541b62a2ac --cluster-to 25b211495aef9f5b8b4dd5320695417367b652e8 --cluster-slots 500 192.168.53.6 7000

    在这里插入图片描述

    • 忘记节点关闭节点

      • 语法:redis-cli --cluster del-node 已存在节点ip:端口 要删除的节点ID
  • 相关阅读:
    css文字选中效果
    使用HTML5来实现本地文件读取和写入
    web响应式图片的5种实现
    前端日志上报的新姿势“Beacon”
    lock文件_我们为什么需要 lock 文件
    本地电脑和远程电脑无法复制粘贴
    device supports x86 but apk only supports armeabi-v7a问题解决
    Android Studio中 安卓模拟器 联网
    Android Studio 配置Gradle
    Android连载1-自定义UI控件
  • 原文地址:https://www.cnblogs.com/goujinyang/p/13125394.html
Copyright © 2011-2022 走看看