zoukankan      html  css  js  c++  java
  • Linux之redis主从复制

    redis集群中的数据库复制就是通过主从同步实现的

    主节点Master把数据分发给节点Salve

    主从同步的好处在高可用, redis节点有冗余设计

    redis主从同步的原理

    1. 从服务器向主服务器发送 SYNC 命令。
    2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接下来执行的所有写命令。
    3. 当主服务器执行完 BGSAVE 命令时,它会向从服务器发送 RDB 文件,而从服务器则会接收并载入这个文件。
    4. 主服务器将缓冲区储存的所有写命令发送给从服务器执行。


    -------------
    1、在开启主从复制的时候,使用的是RDB方式的,同步主从数据的
    2、同步开始之后,通过主库命令传播的方式,主动的复制方式实现
    3、2.8以后实现PSYNC的机制,实现断线重连

    环境准备

    准备两台装有redis的服务器,或两个redis实例

    查看各个redis的角色信息

    默认redis的角色就是master

    配置主库master

    主库其实没有什么需要配置的, 但是需要注意一下几点

    1. protected-mode no    # 关闭
    2. 查看主库有没有设置密码  # 如果主库设置密码, 从库中需要指定主库的密码
    3. bing 192.168.1.1 # 绑定自己的IP, 不要使用127.0.0.1回环地址

    配置从库Salve

    设置从库的方式有两种, 一种是在redis命令行修改, 另一种是配置文件中修改

    方式一: 在配置文件中(推荐使用)

    [root@web01 04:15 /data/6379]# cat /opt/redis-4.0.10/conf/redis-v1.conf 
    port 6379
    daemonize yes
    pidfile /data/6379/redis.pid
    loglevel notice
    logfile "/data/6379/redis.log"
    dir /data/6379
    slaveof 192.168.233.130 6379  # 主库的ip + 端口    
    masterauth 123456    # 主库的密码, 出库有密码的时候才需要配置

    再次查看从库的角色信息, 看到master_link_status为on

     方式二, 命令行设置

    进入从库的命令行

    [root@web01 04:21 /data/6379]# redis-cli 
    127.0.0.1:6379> ping
    PONG

    在命令行设置要同步的主库

    127.0.0.1:6389> SLAVEOF 192.168.233.130 6379

    查看从库和主库的连接状态也是on, 就表示成功

    测试主从同步

    在主库中去set一个键值, 然后在从库中去查看是不是同步的, 

    遇到问题怎么办

    去查看redis的log, 在redis.log中会有详细的报错信息

  • 相关阅读:
    常见的等待事件如何处理
    oracle常见的等待事件
    12c建立物化视图出现ORA-23319错误
    ORA-07445: exception encountered: core dump [qsmmixGetIdxKeyStats()+231] [SIGSEGV] [ADDR:0x8] [PC:0x58AE44F] [Address not mapped to object] []
    Idea的Debug调试快捷键
    C# 程序禁止重复启动
    C#.Net与SQLServer时间范围的最小值最大值
    MySQL-8.0.20
    Flask框架
    Docker常用命令
  • 原文地址:https://www.cnblogs.com/594504110python/p/10085100.html
Copyright © 2011-2022 走看看