• Redis之主从复制


    一:简介

    一:产生背景

    redis是一个高可用的数据库,可以进行高速的读写操作,但是单机redis容易出现单点故障灯问题

    一:虽然redis可以进行数据持久化等操作避免数据丢失,但是物理故障 例如磁盘损坏等 数据还是会丢失

    二:当只有单台redis服务器的时候 大量读写操作 对CPU,内存,磁盘容量很容易达到瓶颈

    二:解决办法

    针对上述问题:可以通过redis复制功能,通过一主(master)多从(slave),或者多主多从(集群),通过多台服务器进行redis服务搭建,提供高可用的redis服务

    三:主从复制介绍

    redis主从复制模型中,分为主服务器(master)从服务器(slave)两种角色,一台主服务器可以有多台从服务器,一台从服务器也可以有自己的从服务器,主服务器可以进行读写操作,而从服务器只进行读取操作(可以通过修改配置文件 让从服务器具有写的功能)同时会同步主服务器写入的数据,如果主服务器宕机,从服务区可以充当主服务器

    四:特点

     (1):一个主服务器可以有多个从服务器

     (2):一个从服务器可以有自己从服务器

     (3):主服务器挂了可以让从服务器充当主服务器

     (4):使用异步复制

     (5):异步复制不会阻塞主服务器

       (6):可以让主服务器免去持久化操作 让从服务器进行持久化操作

       (7):通过主从实现读写分离

    五:主从复制原理

    redis主从复制方式分为两种方式(两个阶段)

    (1)全同步:当主从复制开始的时候 会进行全同步数据

    (2)部分同步:当全同步结束会进行部分同步

    PS:无论何时 从服务器都可以在任意时刻进行全同步

    (1):从服务器会向主服务器发送SYNC请求

    (2):接收到SYNC的主服务器会调用BGSAVE命令,创建一个RDB文件,并使用缓冲区记录下来执行的所有命令

    (3):当主服务器BGSAVE命令执行完毕,会向从服务器发送RDB文件,而从服务器则会接收并且载入这个文件

    (4):从服务器执行RDB文件 然后完成数据初始化同步

    六:命令传播

    在主从服务器完成同步之后,主服务器每执行一个写命令,它都会将被执行的写命令发送给从服务器执行,这个操作被称为“命令传播”(command propagate)。

     二:redis主从复制配置

     在安装redis时就进行了多实例的配置

    准备两个或两个以上redis实例
    6380/redis-server
    6380/redis.conf
    6381/redis-server
    6381/redis.conf
    6382/redis-server
    6382/redis.conf

    配置文件示例:

    bind 127.0.0.1 10.0.0.186
    
    port 6380
    
    daemonize yes
    
    pidfile /var/run/redis_6380.pid
    
    loglevel notice
    
    logfile "/var/log/redis_6380.log"
    
    dbfilename dump.rdb
    
    dir /application/redis/6380/
    
    appendonly no
    
    appendfilename "appendonly.aof"
    
    appendfsync everysec
    
    slowlog-log-slower-than 10000
    
    slowlog-max-len 128
    
    protected-mode no

    启动:

    ./6380/redis-server ./6380/redis.conf
    
    ./6381/redis-server ./6381/redis.conf
    
    ./6382/redis-server ./6382/redis.conf

    复制环境说明

    主节点:6380

    从节点:6381、6382

    开启主从(在6381 6382实例中执行)

    redis-cli -p 6381/6382
    
    SLAVEOF 127.0.0.1 6380
  • 相关阅读:
    机器学习中的贝叶斯方法---当后验分布无法计算时如何求得预测模型?
    机器学习中的贝叶斯方法---先验概率、似然函数、后验概率的理解及如何使用贝叶斯进行模型预测(2)
    机器学习中的贝叶斯方法---先验概率、似然函数、后验概率的理解及如何使用贝叶斯进行模型预测(1)
    使用最大似然法来求解线性模型(4)-最大化似然函数背后的数学原理
    使用最大似然法来求解线性模型(3)-求解似然函数
    使用最大似然法来求解线性模型(2)-为什么是最大化似然函数?
    使用最大似然法来求解线性模型(1)
    关于CPU的User、Nice、System、Wait、Idle各个参数的解释
    Redhat Linux FTP配置
    基于at91rm9200的i2c分析(DS1307实时时钟芯片)
  • 原文地址:https://www.cnblogs.com/SR-Program/p/12444795.html
Copyright © 2020-2023  润新知