美文网首页
01.搭建redis集群

01.搭建redis集群

作者: 鸡蛋挂面 | 来源:发表于2021-03-17 18:59 被阅读0次

    一、主机规划

    单主机多实例
    主机IP地址:192.168.66.100、192.168.66.101、192.168.66.102
    Linux版本:CentOS 7
    redis版本:redis-5.0.7
    安装方式:二进制安装
    集群架构方式:三主三从

        master1:
            IP地址192.168.66.100  端口:6379
        master2:
            IP地址192.168.66.101  端口:6379
        master3:
            IP地址192.168.66.102  端口:6379
    
        node1:
            IP地址192.168.66.100  端口:6380
        node2:
            IP地址192.168.66.101  端口:6380
        node3:
            IP地址192.168.66.102  端口:6380
    

    二、目录规划

    redis源码包目录:

    mkdir -p /opt/redis_cluster/src
    

    redis安装目录:

    mkdir -p /opt/redis_cluster/redis_6379/{conf,logs,pid}
    

    redis数据目录:

    mkdir -p /data/redis_cluster/redis_6379
    

    三、安装部署

    01.下载源码包

    cd /opt/redis_cluster/src
    wget http://download.redis.io/releases/redis-5.0.7.tar.gz   
    

    02.解压编译安装

    tar xf  redis-5.0.7.tar.gz -C /opt/redis_cluster/
    ln -s /opt/redis_cluster/redis-5.0.7/ /opt/redis_cluster/redis
    cd /opt/redis_cluster/redis
    make && make install
    

    03.编写主配置文件

    vim /opt/redis_cluster/redis_6379/conf/redis_6379.conf
    bind 192.168.66.100
    port 6379
    daemonize yes
    pidfile "/opt/redis_cluster/redis_6379/pid/redis_6379.pid"
    logfile "/opt/redis_cluster/redis_6379/logs/redis_6379.log"
    dbfilename "redis_6379.rdb"
    dir "/data/redis_cluster/redis_6379/"
    save 900 1
    save 300 10
    save 60 10000
    cluster-enabled yes
    cluster-config-file nodes_6379.conf
    cluster-node-timeout 15000
    

    其他五个节点可以复制主配置文件,修改IP地址、端口号和数据目录即可

    04.启动服务

    redis-server /opt/redis_cluster/redis_6379/conf/redis_6379.conf
    

    05.查看节点信息

    redis-cli  -c -h  192.168.66.100 -p 6379 cluster nodes
    redis-cli --cluster info 192.168.66.100 6379
    redis-cli --cluster check 192.168.66.100 6379
    

    06.集群初始化

    redis-cli -h master1 -p 6379 FLUSHALL
    redis-cli -h master2 -p 6379 FLUSHALL
    redis-cli -h master3 -p 6379 FLUSHALL
    redis-cli -h node1 -p 6380 FLUSHALL
    redis-cli -h node2 -p 6380 FLUSHALL
    redis-cli -h node3 -p 6380 FLUSHALL
    redis-cli -h master1 -p 6379 CLUSTER RESET
    redis-cli -h master1 -p 6379 CLUSTER RESET
    redis-cli -h master1 -p 6379 CLUSTER RESET
    redis-cli -h node1 -p 6380 CLUSTER RESET
    redis-cli -h node2 -p 6380 CLUSTER RESET
    redis-cli -h node3 -p 6380 CLUSTER RESET
    

    07.创建集群

    redis-cli --cluster create 192.168.66.200:6379 192.168.66.201:6379 192.168.66.202:6379 192.168.66.200:6380 192.168.66.201:6380 192.168.66.202:6380 --cluster-replicas 1
    

    集群关系拓扑图


    image.png

    08.写入数据测试

    vim for.sh
    for i in {1..10000}
      do
        redis-cli  -c -h  192.168.66.100 -p 6379 set k_${i} v_${i}
        sleep 1
      done
        bash for.sh
    

    五、模拟故障转移

    image.png

    01.模拟数据写入

    编写脚本

    vim redis_write.sh
    #!/bin/bash
    for i in {1..10000}
      do
        redis-cli  -c -h  192.168.66.100 -p 6379 set k_${i} v_${i}
        sleep 1
      done
    
    bash for.sh
    

    02.模拟读取数据

    vim redis_read.sh
    #!/bin/bash
    for i in {1..10000}
      do
        redis-cli  -c -h  192.168.66.200 -p 6379 get k_${i}
        sleep 1
      done
    

    03.模拟故障转移

    先执行写入脚本,等待10秒再执行读取脚本。
    在数据能正常读写之后,先停掉其中的一个主节点,发现依然能够正常读取数据
    接着再次停掉另一个主节点,数据也能正常读写

    实验现象说明:在搭建了redis的分布式集群之后,如果其中的一台服务器(节点)发生了故障,架构会自动进行故障转移,不影响数据的读写

    相关文章

      网友评论

          本文标题:01.搭建redis集群

          本文链接:https://www.haomeiwen.com/subject/odmscltx.html