REDIS主从搭建

Posted Lossdate

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了REDIS主从搭建相关的知识,希望对你有一定的参考价值。

一、搭建主从配置

  1. 这里在一台机器上采用伪分布式的方式部署(生产环境应该是多台机器)

  2. 安装redis5.0以上

    mkdir redis-master redis-slave1 redis-slave2
    tar -zxvf redis-5.0.10.tar.gz
    cd redis-5.0.10
    make install PREFIX=/usr/local/redis-ms/redis-master/
    cp redis.conf /usr/local/redis-ms/redis-master/bin/
    

    问题1:gcc:命令未找到

    yum -y install gcc automake autoconf libtool make
    

    问题2:致命错误:jemalloc/jemalloc.h:没有那个文件或。。。

    make MALLOC=libc
    
  3. 修改redis.conf

    # 将`daemonize`由`no`改为`yes` 
    daemonize yes 
    # 默认绑定的是回环地址,默认不能被其他机器访问 
    # bind 127.0.0.1 
    # 是否开启保护模式,由yes该为no 
    protected-mode no
    
    #有密码的话
    requirepass 123456
    masterauth 123456
    
  4. 复制master到slave

    cp -r  redis-master/* /usr/local/redis-ms/redis-slave1
    cp -r  redis-master/* /usr/local/redis-ms/redis-slave2
    

    修改slave1的redis.conf

    #port改为6380,并加上replicaof 127.0.0.1 6379
    port 6380 
    replicaof 127.0.0.1 6379
    

    修改slave2的redis.conf

    #port改为6381,并加上replicaof 127.0.0.1 6379
    port 6381
    replicaof 127.0.0.1 6379
    
  5. 启动

    cd redis-master/bin/
    ./redis-server redis.conf
    
    cd ../../redis-slave1/bin/
    ./redis-server redis.conf
    
    cd ../../redis-slave2/bin/
    ./redis-server redis.conf
    
  6. 测试
    在master插入数据

    cd ../../redis-master/bin
    ./redis-cli
    127.0.0.1:6379> set name Tom
    

    在slave里检验是否同步

    cd /usr/local/redis-ms/redis-slave1/bin
    ./redis-cli -p 6380
    127.0.0.1:6380> get name
    

二、哨兵模式

在这里插入图片描述

  1. kill上一步已启动的reids
    在这里插入图片描述
  2. 创建三个sentinel
    cd /usr/local/redis-ms
    mkdir redis-sentinel1 redis-sentinel2 redis-sentinel3
    
    在这里插入图片描述
  3. 复制及配置
    cp -r  redis-master/* /usr/local/redis-ms/redis-sentinel1
    cp redis-5.0.10/sentinel.conf redis-sentinel1/bin/
    cd redis-sentinel1/bin/
    vim sentinel.conf
    
    修改配置文件
    这里修改 daemonize 为 yes
    修改sentinel down-after-milliseconds mymaster 30000 改为 3000
    其它的可以不用改
    有密码的话:
    sentinel auth-pass mymaster 123456
    注意位置,要在sentinel monitor mymaster 127.0.0.1 6379 2后面

sentinel down-after-milliseconds mymaster 3000 : 指定多少毫秒之后
主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒,改成3秒

  1. 复制sentinel1到sentinel2和3
    cp -r redis-sentinel1/* redis-sentinel2
    cd redis-sentinel2/bin/
    vim sentinel.conf
    #修改port为26380
    port 26380
    
    cd ../../
    
    cp -r redis-sentinel1/* redis-sentinel3
    cd redis-sentinel3/bin/
    vim sentinel.conf
    #修改port为26381
    port 26381
    
  2. 启动
    依次启动
    redis-master、redis-slaver1、redis-slaver2、
    redis-sentinel1、redis-sentinel2、redis-sentinel3
    #启动redis-master和redis-slaver 
    #在redis-master目录下 
    ./redis-server redis.conf 
    #在redis-slaver1目录下 
    ./redis-server redis.conf 
    #在redis-slaver2目录下 
    ./redis-server redis.conf 
    
    #启动redis-sentinel 
    #在redis-sentinel1目录下 
    ./redis-sentinel sentinel.conf 
    #在redis-sentinel2目录下 
    ./redis-sentinel sentinel.conf 
    #在redis-sentinel3目录下 
    ./redis-sentinel sentinel.conf
    
    在这里插入图片描述

以上是关于REDIS主从搭建的主要内容,如果未能解决你的问题,请参考以下文章

010.Redis 主从架构搭建及原理详解

Redis系列:单机主从模式搭建

大数据开发:Redis 主从架构搭建

Jenkins篇:Jenkins 集群搭建(主从)

redis主从redis哨兵redis集群配置搭建和使用

Redis环境搭建创建服务搭建主从复制-Windows版本