redis主从配置 - CSDN
  • 两个提供参考 ... ... 一,本文目的 Redis的的的的主从配置分为两篇文章,第一篇主要介绍了Redis的的的主从配置的搭建过程及使用,第二篇主要说明各种情况下的的Redis的主从状态,如master...

    两个提供参考

    https://www.cnblogs.com/gossip/p/5992716.html

    https://www.cnblogs.com/dupang/p/6414365.html


    一,本文目的

             Redis的的的的主从配置分为两篇文章,第一篇主要介绍了Redis的的的主从配置的搭建过程及使用,第二篇主要说明各种情况下的的Redis的主从状态,如master挂掉,slave挂掉,挂掉后重新加入等。

     

    二,常用命令

    1. 根据配置文件启动redis:./src/redis-server redis.conf
    2. 启动哨兵在src下 ./redis-sentnel ../sentnel.conf                   要是启动失败后边加上两个横杠  --
    3. 启动redis客户端:redis-cli -p port
    4. Slaver连接Master:slaveof host:ip           (测试时使用slaveof手动连接master,正式环境使用配置文件)
    5. 关闭Redis:shutdown
    6. 查看主从信息:info Replication

     

    Redis的配置

        1、按照1主2从的结构搭建,即1个Master,2个Slaver节点

        2、Redis配置文件redis.conf的配置

      daemonize
    (后台运行)
    pidfile port logfile(日志,src目录) # slaveof <masterip> <masterport>
      (测试时使用slaveof手动连接master,正式环境使用配置文件)
    Master yes /var/run/redis6379.pid 6379 "redis6379.log"  
    Slaver1 yes /var/run/redis6381.pid 6381 "redis6381.log" slaveof 127.0.0.1 6379
    Slaver2 yes /var/run/redis6382.pid 6382 "redis6382.log" slaveof 127.0.0.1 6379

        3、配置完成后3个节点都是Master

        4、配置主从节点(通过info replication查看主从关系)

      5、Master节点设置key后异步同步到Slaver节点;Slaver节点只能读取数据,不能修改

     6、主节点挂掉后,手动将S1子节点升级为Master(命令:slaveof no one 手动将Slaver节点升级为Master节点)

       操作步骤如下:

        a) Master节点:Shutdown关闭节点

        b) Slaver1节点:slaveof no one将其升级为Master节点

        c) Slaver2节点:使用slaveof 127.0.0.1 6381 重连Slaver2将其视为Master节点

        d) 原来的Master节点:重新启动后,可以使用slaveof 127.0.0.1 6381 连接Slaver2将其视为Master节点,自己成为Slaver节点

     7、使用哨兵模式,自动监视Master节点,当前挂掉后,自动将Slaver节点变为Master节点

           a) sentinel.conf配置文件,修改sentinel monitor host6379 127.0.0.1 6379 1,其它使用默认即可
               host6379 主机名称,随便起    主机IP 端口 1表示选举,某个slaver得到超过1票则成成为Master节点

        sentinel  monitor  主机名随便起  主节点的ip  主节点的端口  某个slaver得到超过1票则成成为Master节点

           b) 启动sentinel: ./redis-sentinel ../sentinel.conf

       8、手动shutdown Master节点后,等待一段时间(大概一分钟),sentinel会重新选举Master节点。下面将6381选举为Master节点,6382自动重连6381的Master节点

         6379 原来的Master节点重启后变成Slaver节点

     

     

    四、总结

    1. Master可读可写,Slaver只能读,不能写
    2. Master可以对应多个Slaver,但是数量越多压力越大,延迟就可能越严重
    3. Master写入后立即返回,几乎同时将写入异步同步到各个Slaver,所以基本上延迟可以忽略
    4. 可以通过slaveof no one命令将Slaver升级为Master(当Master挂掉时,手动将某个Slaver变为Master)
    5. 可以通过sentinel哨兵模式监控Master,当Master挂掉时自动选举Slaver变为Master,其它Slaver自动重连新的Master

     

    展开全文
  • 2、Redis:5.0.0 官网下载地址:http://www.redis.cn/download.html 百度云地址:https://pan.baidu.com/s/1f2XTXWHMs3nro6glidexrg 提取码:sf6h 二、Redis安装(单节点) 1、编译安装Redis tar -xvf redis-5.0.0....

    一、基础环境

    1、操作系统:CentOS 7.3
    2、Redis:5.0.0
    官网下载地址:http://www.redis.cn/download.html
    百度云地址:https://pan.baidu.com/s/1f2XTXWHMs3nro6glidexrg 提取码:sf6h

    二、Redis安装(单节点)

    1、编译安装Redis
    tar -xvf redis-5.0.0.tar.gz
    
    cd redis-5.0.0
    make && make install
    
    2、创建相关目录
    mkdir -p /opt/redis-5.0.0/bin
    mkdir -p /opt/redis-5.0.0/log
    mkdir -p /opt/redis-5.0.0/pid
    mkdir -p /opt/redis-5.0.0/db
    
    3、将编译安装后的可执行文件复制到刚刚创建的安装目录
    ln -s /usr/local/bin/redis-* /opt/redis-5.0.0/bin
    
    4、创建并编辑配置文件

    (1)复制安装包下的redis配置文件到安装目录

    cp /root/redis-5.0.0/redis.conf /opt/redis-5.0.0/
    

    (2)编辑配置文件(所有配置文件均为在原来的基础上修改,不需添加)

    vi /opt/redis-5.0.0/redis.conf
    

    redis默认只允许本机连接,所以需要找到“bind 127.0.0.1”并将这行注释掉:
    在这里插入图片描述
    redis在3.0版本以后增加了保护模式,需要设置密码,如不需要设置密码,可将“protected-mode yes”改为no,即关闭保护模式:
    在这里插入图片描述

    将默认的“daemonize no”改为yes,设置redis以守护线程方式启动:
    在这里插入图片描述
    分别配置pid,log,db文件的保存地址,目录为我们事先创建好的相关目录

    pidfile /opt/redis-5.0.0/pid/redis.pid
    logfile /opt/redis-5.0.0/log/redis.log
    dir /opt/redis-5.0.0/db
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    5、创建并编写redis启动脚本
    vi /etc/init.d/redis
    

    (1)添加以下配置

    #!/bin/sh
    #
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    # Simple Redis init.d script conceived to work on Linux systems
    # as it does use of the /proc filesystem.
    PATH=/opt/redis-5.0.0/bin:/sbin:/usr/bin:/bin
    REDISPORT=6379
    EXEC=/opt/redis-5.0.0/bin/redis-server
    CLIEXEC=/opt/redis-5.0.0/bin/redis-cli
    PIDFILE=/opt/redis-5.0.0/pid/redis.pid
    CONF="/opt/redis-5.0.0/redis.conf"
    case "$1" in
        start)
            if [ -f $PIDFILE ]
            then
                    echo "$PIDFILE exists, process is already running or crashed"
            else
                    echo "Starting Redis server..."
                    $EXEC $CONF
            fi
            ;;
        stop)
            if [ ! -f $PIDFILE ]
            then
                    echo "$PIDFILE does not exist, process is not running"
            else
                    PID=$(cat $PIDFILE)
                    echo "Stopping ..."
                    $CLIEXEC -p $REDISPORT shutdown
                    while [ -x /proc/${PID} ]
                    do
                        echo "Waiting for Redis to shutdown ..."
                        sleep 1
                    done
                    echo "Redis stopped"
            fi
            ;;
        *)
            echo "Please use start or stop as first argument"
            ;;
    esac
    

    (2)设置服务权限并配置为可执行文件

    chmod 777 /etc/init.d/redis
    chown root:root /etc/init.d/redis
    
    6、启动并查看redis

    (1)启动redis

    service redis start
    

    (2)登录redis查看

    redis-cli
    

    在这里插入图片描述
    (3)设置redis开机自启

    chkconfig redis on
    

    三、Redis主从配置

    1、主节点(192.168.0.101)与从节点(192.168.0.102)均按照步骤二安装redis
    2、从节点配置(192.168.0.102)

    (1)修改redis配置文件,添加一行配置“slaveof 192.168.0.101 6379”映射到主节点

    vi /opt/redis-5.0.0/redis.conf
    
    slaveof 192.168.0.101 6379
    

    (2)重启从节点的redis

    service redis stop
    service redis start
    
    3、查看并验证主从配置

    (1)主节点与从节点均登录redis并执行info命令查看主从配置结果

    redis-cli
    info
    

    找到“# Replication”模块,可以看到主节点提示存在一个从节点,并且会列出从节点的相关信息,同样,可以在从节点看到自己的主节点是哪个,列出主节点的相关信息
    在这里插入图片描述
    在这里插入图片描述
    (2)验证主从

    登录主节点redis,set age 24,到从节点直接get age,看到可以get到我们在主节点设置的值24,说明主从配置成功

    主节点:
    在这里插入图片描述
    从节点:
    在这里插入图片描述

    展开全文
  • 由于redis的高性能,在应用中对其依赖很高,有时候一台redis服务器性能不够,需要配置redis集群。最简单的就是一台用来读,一台用来写。一般对读的需求比较大,所以可以配置一主(读)多从(写)。 本次是在本地...

    前言:

    由于redis的高性能,在应用中对其依赖很高,有时候一台redis服务器性能不够,需要配置redis集群。最简单的就是一台用来读,一台用来写。一般对读的需求比较大,所以可以配置一主(读)多从(写)。
    本次是在本地搭建两台虚拟机分别做一主一从。
    ip为192.168.2.100为主服务器
    ip为192.168.2.101为从服务器

    一、安装redis

    首先给两台服务器分别安装redis。可参考
    https://blog.csdn.net/u014691098/article/details/80892504

    二、配置主服务器

    1、进入192.168.2.100服务器,打开redis配置文件
    [root@localhost redis-4.0.10]# vim /etc/redis/6379.conf
    2、将bind 127.0.0.1这行注释或者指定ip。(本例是注释,即所有ip都能连接)

    这里写图片描述

    3、开启守护进程

    这里写图片描述

    4、设置访问密码(由于redis性能非常高,撞库风险极大,建议线上把密码设置非常复杂,最好能在第2步中指定ip)

    这里写图片描述

    注意:
    当然,既然用到主从了,那说明对redis依赖非常高,还有几个参数需要根据服务器配置来设置
    第一个就是客户端最大连接数(maxclients),默认是10000,可根据需求更改
    这里写图片描述
    第二个就是最大内存(默认不受限制,但如果有多个从服务器,建议还是设置个低于服务器内存的值)
    这里写图片描述
    第三个是内存策略,如果内存足够用则不用管,如果内存不够用,建议设置最近最少使用策略(LRU),默认是内存不够则报错
    这里写图片描述

    至此主服务器配置完毕!
    启动redis服务

    [root@localhost redis-4.0.10]# service redisd start

    这里写图片描述

    三、配置从服务器

    前四步与主服务器配置基本一致

    5、配置所属主服务器ip和端口
    这里写图片描述
    6、配置所属主服务器的密码(再次强调,要将密码设置非常复杂,这里只是演示)
    这里写图片描述
    需要注意的是,从服务器通常是只读,所以要配置只读(默认是只读,不要更改即可)
    这里写图片描述
    配置完成,启动服务

    [root@localhost redis-4.0.10]# service redisd start

    四、测试

    使用redis客户端或者telnet都可以
    本次使用redis客户端

    1、进入主服务器(192.168.2.100)

    进入redis客户端

    [root@localhost redis-4.0.10]# /usr/local/redis/bin/redis-cli

    这里写图片描述
    由于设置了密码,所以需要鉴权
    这里写图片描述
    设置一个值
    这里写图片描述

    2、进入从服务器(192.168.2.101)

    使用get命令获取name的值,可以看到
    这里写图片描述
    代表配置成功
    如果在从服务器上写,则会报错,如下图
    这里写图片描述

    至此,redis主从复制配置完成,如果需要配置多台从服务器,可以重复第三步

    展开全文
  • redis主从复制过程: 当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将 数据库快照保存到文件中,同时master主进程会开始收集新的写命令...

    redis主从复制过程:

    当配置好slave后,slave与master建立连接,然后发送sync命令。无论是第一次连接还是重新连接,master都会启动一个后台进程,将 数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。后台进程完成写文件后,master就发送文件给slave,slave将 文件保存到硬盘上,再加载到内存中,接着master就会把缓存的命令转发给slave,后续master将收到的写命令发送给slave。

    如果master同时收到多个slave发来的同步连接命令,master只会启动一个进程来写数据库镜像,然后发送给所有的slave。master同步数据时是非阻塞式的,可以接收用户的读写请求。然而在slave端是阻塞模式的,slave在同步master数据时,并不能够响应客户端的查询。

    可以在master禁用数据持久化,只需要注释掉master 配置文件中的所有save配置,然后只在slave上配置数据持久化

    拥有主从服务器的好处(从服务器是只读的,可以一主多从)

    1.    主服务器进行读写时,会转移到从读,减轻服务器压力

    2.    热备份 主从都可以设置密码,也可以密码不一致

    进入/usr/data/redis/slave

    创建 master  slave1  slave2

    1.复制redis.conf到3个目录,修改端口 1000,2000,3000

    2.修改pid路径,日志路径

    pidfile /usr/data/redis/slave/master/redis.pid

    logfile /usr/data/redis/slave/master/redis.log

    ps -ef | grep redis
    root     19000     1  0 08:27 ?        00:00:00 redis-server 192.168.1.1:1000
    root     19012     1  0 08:27 ?        00:00:00 redis-server 192.168.1.1:2000
    root     19016     1  0 08:27 ?        00:00:00 redis-server 192.168.1.1:3000

    连接客户端

    查看权限
    192.168.1.1:3000> info

    3台服务器都是  # Replication   role:master

    设置从服务器方式

    1.命令方式

    # Replication
    role:master
    connected_slaves:2
    slave0:ip=192.168.1.1,port=2000,state=online,offset=113,lag=0
    slave1:ip=192.168.1.1,port=3000,state=online,offset=113,lag=0
    master_repl_offset:113

    # Replication
    role:slave
    master_host:192.168.1.1
    master_port:1000
    master_link_status:up

    服务器停止,主从就不起作用

    2.配置文件

    # slaveof
    slaveof 192.168.1.1 1000

    服务器停止,主从依然起作用

    主从同步,2者密码可以不一致

    Redis的主从架构,如果master发现故障了,还得手动将slave切换成master继续服务,手动的方式容易造成失误,导致数据丢失,那Redis有没有一种机制可以在master和slave进行监控,并在master发送故障的时候,能自动将slave切换成master呢?有的,那就是哨兵。

    哨兵的作用:
    1、监控redis进行状态,包括master和slave
    2、当master down机,能自动将slave切换成master

    这里写图片描述

    下面配置哨兵监控redis进程,假如我们已经配置好了Master和Slave,具体详细配置参

    手动切换master

    master  SLAVEOF NO ONE

    slave  SLAVEOF 192.168.1.1 3000

    创建哨兵

    touch sentinel.conf 内容如下

    sentinel monitor 主机名       主机ip                主机端口 票数n         票数多余n的从机作为主机

    sentinel monitor mymaster 192.168.1.1    1000        1

    启动哨兵

    redis-sentinel sentinel.conf
    20161121140234

    1.将3000 kill掉

    2.将master(1000) kill掉

    redis-cli -h 192.168.1.1 -p 1000
    Could not connect to Redis at 192.168.1.1:1000: Connection refused

    查看哨兵后台打印信息

    192.168.1.1:2000> info  变成了主

    # Replication
    role:master
    connected_slaves:1
    slave0:ip=192.168.1.1,port=3000,state=online,offset=1625,lag=0

    192.168.1.1:2000> set aa 11
    OK
    192.168.1.1:2000> get aa
    “11”

    192.168.1.1:3000> info  还是从

    # Replication
    role:slave
    master_host:192.168.1.1
    master_port:2000
    master_link_status:up

    192.168.1.1:3000> get aa
    “11”

    重启1000原来的master服务器

    查看哨兵

    192.168.1.1:1000> info  变成从

    # Replication
    role:slave
    master_host:192.168.1.1
    master_port:2000
    master_link_status:up

    192.168.1.1:1000> get aa
    “11”

    Redis-sentinel高可用

    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自动切换。

    它的主要功能有以下几点

    不时地监控redis是否按照预期良好地运行;

    如果发现某个redis节点运行出现状况,能够通知另外一个进程(例如它的客户端);

    能够进行自动切换。当一个master节点不可用时,能够选举出master的多个slave(如果有超过一个slave的话)中的一个来作为新的master,其它的slave节点会将它所追随的master的地址改为被提升为master的slave的新地址。

    需要注意的是,配置文件在sentinel运行期间是会被动态修改的,例如当发生主备切换时候,配置文件中的master会被修改为另外一个slave。这样,之后sentinel如果重启时,就可以根据这个配置来恢复其之前所监控的redis集群的状态。

    当sentinel集群式,解决这个问题的方法就变得很简单,只需要多个sentinel互相沟通来确认某个master是否真的死了,这个2代表,当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。

    down-after-milliseconds
    sentinel会向master发送心跳PING来确认master是否存活,如果master在“一定时间范围”内不回应PONG 或者是回复了一个错误消息,那么这个sentinel会主观地(单方面地)认为这个master已经不可用了(subjectively down, 也简称为SDOWN)。而这个down-after-milliseconds就是用来指定这个“一定时间范围”的,单位是毫秒。

    can-failover

    no 表示当前sentinel是一个观察者,只参与投票不参与实施failover

    全局中至少有一个是yes

    parallel-syncs

    当新master产生时,同时进行“slaveof”到新master并进行“SYNC”的slave个数

    默认为1,建议保持默认值

    在salve执行salveof与同步时,将会终止客户端请求
    failover-timeout

    failover过期时间,当failover开始后,在此时间内仍然没有触发任何failover操作

    当前sentinel将会认为此次failoer失败

    展开全文
  • redis配置主从同步

    2019-06-10 18:28:06
    文章目录一、概述二、测试环境准备步骤一:查看主节点信息步骤二:查看从节点01信息步骤三:查看从节点02信息三、节点基础配置1.master节点基础配置步骤一:下载redis安装包步骤二:解压redis包步骤三:编译redis...

    一、概述

    概述:为了分担读写压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步

    二、测试环境准备

    步骤一:查看主节点信息

    系统 IP 主机名 redis版本
    centos-7.2 10.0.0.67 redis-master redis-4.0.9.tar.gz
    centos-7.2 10.0.0.68 redis-slave01 redis-4.0.9.tar.gz
    centos-7.2 10.0.0.69 redis-slave02 redis-4.0.9.tar.gz

    [root@redis ~]# ifconfig eno16777736|grep -w inet
    inet 10.0.0.67 netmask 255.255.255.0 broadcast 10.0.0.255

    [root@redis ~]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)

    [root@redis ~]# uname -r
    3.10.0-327.el7.x86_64

    步骤二:查看从节点01信息

    [root@redis-slave01 ~]# ifconfig eno16777736|grep -w inet
    inet 10.0.0.68 netmask 255.255.255.0 broadcast 10.0.0.255

    [root@redis-slave01 ~]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)

    [root@redis-slave01 ~]# uname -r
    3.10.0-327.el7.x86_64

    步骤三:查看从节点02信息

    [root@redis-slave02 ~]# ifconfig eno16777736|grep -w inet
    inet 10.0.0.69 netmask 255.255.255.0 broadcast 10.0.0.255

    [root@redis-slave02 ~]# cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)

    [root@redis-slave02 ~]# uname -r
    3.10.0-327.el7.x86_64

    三、节点基础配置

    1.master节点基础配置

    步骤一:下载redis安装包

    [root@redis ~]# wget http://download.redis.io/releases/redis-4.0.9.tar.gz
    [root@redis ~]# ll redis-4.0.9.tar.gz
    -rw-r–r--. 1 root root 1737022 Mar 26 2018 redis-4.0.9.tar.gz

    步骤二:解压redis包

    [root@redis ~]# tar zxf redis-4.0.9.tar.gz
    [root@redis ~]# cd redis-4.0.9
    [root@redis redis-4.0.9]# ls
    00-RELEASENOTES CONTRIBUTING deps Makefile README.md runtest runtest-sentinel src utils
    BUGS COPYING INSTALL MANIFESTO redis.conf runtest-cluster sentinel.conf tests

    步骤三:编译redis(只需要执行make))

    [root@redis redis-4.0.9]# make
    编译出错:zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
    解决方法:make MALLOC=libc
    [root@redis redis-4.0.9]#make MALLOC=libc

    步骤四:创建redis目录,并且redis基本文件拷进去

    [root@redis redis-4.0.9]# mkdir /usr/local/redis -p
    [root@redis redis-4.0.9]# cp src/redis-server /usr/local/redis/
    [root@redis redis-4.0.9]# cp src/redis-cli /usr/local/redis/
    [root@redis redis-4.0.9]# cp redis.conf /usr/local/redis/
    [root@redis redis-4.0.9]# mkdir /application
    [root@redis redis-4.0.9]# ln -s /usr/local/redis/ /application/

    步骤五:修改redis配置文件

    [root@redis redis-4.0.9]# cd /application/redis/
    [root@redis redis]# cp redis.conf redis.conf.backup
    修改前
    [root@redis redis]# egrep “^bind|^protected-mode|^\daemonize|# requirepass” redis.conf
    bind 127.0.0.1
    protected-mode yes
    daemonize no
    requirepass 000000
    修改后
    [root@redis redis]# egrep “^bind|^protected-mode|^daemonize|^requirepass” redis.conf
    bind 10.0.0.67
    protected-mode no
    daemonize yes
    requirepass 000000

    步骤六:启动redis

    [root@redis redis]# ./redis-server redis.conf
    13064:C 04 Apr 20:32:15.767 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    13064:C 04 Apr 20:32:15.767 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=13064, just started
    13064:C 04 Apr 20:32:15.767 # Configuration loaded

    [root@redis redis]# netstat -lntup|grep 6379
    tcp 0 0 10.0.0.67:6379 0.0.0.0:* LISTEN 13065/./redis-serve

    步骤七:redis客户端连接测试

    [root@redis redis]# redis -h 10.0.0.67 -p 6379 -a 000000
    10.0.0.67:6379> exit

    2.配置从节点(从节点与主节点的基础配置步骤一样)

    步骤一:按照主节点的配置步骤配置(配置文件的不同之处如下)

    [root@redis-slave01 redis]# grep “^bind” redis.conf
    bind 10.0.0.68
    [root@redis-slave02 redis]# grep “^bind” redis.conf
    bind 10.0.0.69

    步骤二:启动salve01

    [root@redis-slave01 redis]# ./redis-server ./redis.conf
    3106:C 20 Apr 12:12:06.594 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3106:C 20 Apr 12:12:06.595 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=3106, just started
    3106:C 20 Apr 12:12:06.595 # Configuration loaded
    [root@redis-slave01 redis]# netstat -lntup|grep 6379
    tcp 0 0 10.0.0.68:6379 0.0.0.0:* LISTEN 3107/./redis-server

    步骤三:启动从节点02

    [root@redis-slave02 redis]# ./redis-server ./redis.conf
    3166:C 20 Apr 12:12:39.877 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3166:C 20 Apr 12:12:39.877 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=3166, just started
    3166:C 20 Apr 12:12:39.877 # Configuration loaded
    [root@redis-slave02 redis]# netstat -lntup|grep 6379
    tcp 0 0 10.0.0.69:6379 0.0.0.0:* LISTEN 3167/./redis-server

    四、主从配置

    1.主节点master信息

    步骤一:修改配置文件信息,修改前。

    vi redis.conf
    450 # min-slaves-to-write 3
    451 # min-slaves-max-lag 10
    修改后
    450 min-slaves-to-write 2 ###有几个salve,如果salve的数量小于的话会报错“(error) NOREPLICAS Not enough good slaves to write.

    451 min-slaves-max-lag 10 ###slave与master的超时时间

    步骤二:重启redis

    [root@redis redis]# ./redis-cli -p 6379 -h 10.0.0.67 -a 000000 shutdown

    [root@redis redis]# ./redis-server ./redis.conf
    2682:C 20 Apr 12:25:05.983 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    2682:C 20 Apr 12:25:05.983 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=2682, just started
    2682:C 20 Apr 12:25:05.983 # Configuration loaded

    2.配置从节点(以salve01为例)

    步骤一:修改slave信息配置文件信息

    修改前
    [root@redis-slave01 redis]# vi redis.conf
    281 # slaveof
    288 # masterauth
    修改后
    281 slaveof 10.0.0.67 6379
    288 masterauth 000000

    步骤二:重启redis

    [root@redis-slave01 redis]# ./redis-cli -h 10.0.0.68 -a 000000 shutdown

    [root@redis-slave01 redis]# ./redis-server ./redis.conf
    3149:C 20 Apr 12:28:11.882 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
    3149:C 20 Apr 12:28:11.882 # Redis version=4.0.9, bits=64, commit=00000000, modified=0, pid=3149, just started
    3149:C 20 Apr 12:28:11.882 # Configuration loaded

    五、验证主从复制

    1.主节点信息查看

    步骤一:查看主节点主从信息

    [root@redis redis]# ./redis-cli -h 10.0.0.67 -a 000000
    10.0.0.67:6379> info replication
    # Replication
    role:master
    connected_slaves:2
    min_slaves_good_slaves:2
    slave0:ip=10.0.0.68,port=6379,state=online,offset=240,lag=0
    slave1:ip=10.0.0.69,port=6379,state=online,offset=240,lag=1
    master_replid:6811d95c1e61ece1eaf8fdeb6edae1c1ce76a0f3
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:240
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:240

    步骤二:查看主节点的key

    10.0.0.67:6379> KEYS *
    (empty list or set)

    2.从节点01信息查看

    步骤一:查看从节点主从信息

    [root@redis-slave01 redis]# ./redis-cli -h 10.0.0.68 -a 000000
    10.0.0.68:6379> info replication
    # Replication
    role:slave
    master_host:10.0.0.67
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:6
    master_sync_in_progress:0
    slave_repl_offset:394
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:6811d95c1e61ece1eaf8fdeb6edae1c1ce76a0f3
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:394
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:394

    步骤二:查看从节点01的key

    10.0.0.68:6379> KEYS *
    (empty list or set)

    3.从节点02信息查看

    步骤一:查看从节点主从信息

    [root@redis-slave02 redis]# ./redis-cli -h 10.0.0.69 -a 000000
    10.0.0.69:6379> info replication
    # Replication
    role:slave
    master_host:10.0.0.67
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:5
    master_sync_in_progress:0
    slave_repl_offset:436
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:6811d95c1e61ece1eaf8fdeb6edae1c1ce76a0f3
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:436
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:436

    步骤二:查看从节点01的key

    10.0.0.69:6379> KEYS *
    (empty list or set)

    4.主节点添加字符串

    步骤一:添加redis liang

    10.0.0.67:6379> set redis liang
    OK

    步骤二:从节点01查看

    10.0.0.68:6379> KEYS *
    1) “redis”
    10.0.0.68:6379> get redis
    “liang”

    步骤三:从节点02查看

    10.0.0.69:6379> KEYS *
    1) “redis”
    10.0.0.69:6379> get redis
    “liang”
    注:配置了主从,从节点无法直接添加数据。
    10.0.0.68:6379> set redis01 test
    (error) READONLY You can’t write against a read only slave.

    六、redis管理脚本

    [root@redis redis]# cat /scritp/redis.sh 
    #!/bin/bash
    \# chkconfig: 3 3389 3390
    . /etc/rc.d/init.d/functions
    Redis_Port=6379
    Redis_Host=10.0.0.67
    Redis_Passwd=000000
    Redis_Pid=/var/run/redis_${Redis_Port}.pid
    Redis_Config=/application/redis/redis.conf
    Redis_Cli=/application/redis/redis-cli
    Redis_Server=/application/redis/redis-server
    Redis_Num(){
    if [ $# -ne 1 ];then
            echo "Usage: /etc/init.d/redis {start|stop|status|restart|}"
            exit 2
    fi
    }
    Redis_start(){
            if [ -f "$Redis_Pid" ];then
                    echo "redis .......running"
            else
                    ${Redis_Server} ${Redis_Config} >/dev/null 2>&1
                    action "redis .......start" /bin/true
            fi
    }
    Redis_stop(){
            if [ -f "$Redis_Pid" ];then
                    ${Redis_Cli} -h ${Redis_Host} -p ${Redis_Port} -a ${Redis_Passwd} shutdown
                    action "redis .......stop" /bin/true
            else
                    echo "redis .......shutdown"
            fi
    }
    Redis_status(){
            if [ -f "$Redis_Pid" ];then
                    echo "redis .......running"
            else
                    echo "redis .......shutdown"       
            fi
    }
    Redis_restart(){
            Redis_stop
            Redis_start
    }
    Redis_Case(){
    case $1 in
    start|START)
            Redis_start
    ;;
    stop|STOP)
            Redis_stop
    ;;
    status|STATUS)
            Redis_status
    ;;
    restart)
            Redis_restart
    ;;
    *)
            echo "Usage: /etc/init.d/redis {start|stop|status|restart|}"
    ;;
    esac
    }
    Redis_Cmd(){
            Redis_Num $1
            Redis_Case $1
    }
    Redis_Cmd $1
    
    展开全文
  • [root@server1 ~]# tar zxf redis-4.0.8.tar.gz [root@server1 ~]# ls mha4mysql-manager-0.56-0.el6.noarch.rpm mha4mysql-node-0.56-0.el6.noarch.rpm perl-Config-Tiny-2.12-7.1.el6.noarch.rpm perl-Email...
  • Windows下Redis主从复制 Redis拥有非常强大的主从复制功能,而且还支持一个master可以拥有多个slave,而一个slave又可以拥有多个slave,从而形成强大的多级服务器集群架构。目前在同一台window下安装三个redis...
  • 说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一丶主从概念 一个master可以拥有多个slave,一个... 通过主从配置可以实现读写分离 master和slave都是一个redis实例(redis服务) 二...
  • redis主从配置方法

    2019-01-18 09:30:23
    在不使用redis-cluster集群的情况下,配置完成两台redis实例配置主从模式即可较好的实现实时备份,同时sentinel实际上也是一个redis实例,用于监控各个redis节点的状态,实现当主服务器down掉后自动的切换至从...
  • redis主从配置

    2018-08-17 11:28:31
    1、准备两台redis服务: 192.168.82.31(master) , port:6379 192.168.82.62(slave) ,port: 6379 注意:两台redis的版本必须一样 2、主(master)配从(slave)不配 redis主服务器(master)一般不用怎么配置 ,...
  • Redis主从复制和集群配置         redis主从复制 概述 1、redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作...
  • Redis主从配置

    2019-04-22 00:50:01
    前言:这一段时间学习redis,俗话说的好,光说不练不算好汉,我就自己搭建了一个redis主从配置集群,顺便写下博客,强化自己的记忆 环境:在虚拟机上的centoS7 系统,gcc (yum install gcc),rzsz(yum install ...
  • redis主从配置
  • 环境描述: ...一、主从配置 1、将主从redis配置文件redis.conf中的aemonize no 改为 yes 2、修改从redis配置文件redis.conf中的port 6379 改为 6380,添加slaveof 192.168.10.1 6379 3、启动主从服务
  • Redis 主从配置 环境 安装 启动服务 检查主从状态 测试数据同步 默认是读写分离的 Redis Sentinel 配置 主Redis宕机测试 配置多个哨兵 Redis 主从介绍 主Redis写入数据时,从Redis会...
  • 在Linux(CentOS7)下进行Redis主从配置 概述 redis的复制功能是支持多个数据库之间的数据同步。一类是主数据库(master)一类是从数据库(slave),主数据库可以进行读写操作,当发生写操作的时候自动将数据同步到...
  • Redis主从配置和集群配置 文章目录Redis主从配置和集群配置一、Redis主从配置1.主从概念2.主从配置3.数据操作二、Redis集群配置1.简介2.Redis 集群好处3.redis集群4.实现机制5.依赖配置6.集群配置1.**`配置机器1`**2...
  • 我们前面学习了简单的redis主从配置(结合稍兵),其实在我们的实际开发中要真正的达到“高可用”,”稍兵”还会部署多个,通过配置多个稍兵同时产生警报,那么我们再进行主从的切换。 前面我们配置了一个主机一...
  • 转载自:... ...Redis主从配置异常解决:Error condition on socket for SYNC: Connection refused 在Docker中搭建的Redis主从集群时,从服务器上的redis日志报错: 32677:S 08 Feb
  • redis主从配置及其java的调用环境:虚拟机是 CentOS ,版本CentOS6.5 IP:192.168.1.9 redis-3.2.4版本1.下载redis安装包 命令: cd / mkdir app wget http://download.redis.io/releases/redis-3.2.4.tar.gz 2....
1 2 3 4 5 ... 20
收藏数 48,080
精华内容 19,232
热门标签
关键字:

redis主从配置