zoukankan      html  css  js  c++  java
  • Redis—主从复制

    主从复制的实现方式

    实现方式一:在从节点上执行 "slaveof 主节点ip 端口" 命令,以下命令都是在从节点的 redis 上面执行的。

    127.0.0.1:6379> slaveof 192.168.1.45 6379      -- 确保主节点(192.168.1.45)的防火墙规则是放行的,使用命令后自身数据会被清空,但取消slave只是停止复制,并不清空。
    127.0.0.1:6379> slaveof no one                 -- 取消复制,从节点的库不会清空旧数据,只是不从主库那里复制数据过来了。

    实现方式二:修改配置文件,在从服务器的配置文件中加入:slaveof <masterip> <masterport>。该方案需要重启redis从节点才可生效,不建议使用。

    # slaveof   <masterip> <masterport>
    # replicaof <masterip> <masterport>
    slaveof 192.168.1.45 6379              # 方式一,连接主节点的ip、端口。
    replicaof 192.168.1.45 6379            # 方式二,连接主节点的ip、端口。
     
    masterauth 123456                      # 如果主节点需要密码认证,则需要加上这行。主节点密码为:123456。
    
    slave-read-only yes                    # 设置从节点只读不能写,目的是维持主从节点数据一致性。这一行可以不加。

    实现方式三:在 redis-server 服务启动命令后加入 --slaveof <masterip> <masterport>

    查看命令:

    127.0.0.1:6379> info replication               -- 查看主从复制状态。主节点客户端和从节点客户端都可以执行,可以看到复制的一些信息。
    127.0.0.1:6379> keys *                         -- 查看当前redis中的所有key。

    注意事项

    • Master主节点服务器不需要针对主从复制做任何的设置(这不包括对主从复制过程的配置优化),Slave从节点服务器上我们只需要做一件事情,就是打开slaveof选项即可。
    • redis主从复制为我们提供了复制功能,实现了相同数据的多个副本。复制功能是redis高可用的基础,不管是哪种集群方案,都是基于底层的主从复制原理进行的。
    • 在redis的主从复制中,和其他服务一样,都有master和slave两个角色,默认每个redis节点都是主节点,每个从节点也只能有一个主节点,而主节点可以配置多个从节点。
    • 如果主节点的 redis 服务连接需要密码,则需要在从节点的配置文件中,修改如下配置:
    replicaof 192.168.1.45 6379        # 使用 replicaof 参数对master进行指定,下面是密码认证。
    masterauth 123456                  # 这是主节点 redis 服务的连接密码。一般改这个就行,如果不行,就再添加上面的一行。

    主从复制的状态过程

    一、当执行切主指令后,slave发生了什么?

    所谓切主操作,无非就是直接重新指向另一台redis节点作为新的master。即:slaveof ip port

    • 断开与旧主的复制关系。
    • 与新节点建立主从关系。
    • 删除slave节点当前的所有数据。
    • 对新节点进行复制操作。

    二、当断开了主从复制关系,slave节点上发生了什么?

    • 断开与主节点复制关系。
    • slave晋升为master。
    • slave断开复制关系后,并不会抛弃原有的数据,只是无法获取主节点上的数据变化。

    https://blog.csdn.net/hguisu/article/details/90748943

    https://www.zbpblog.com/blog-167.html

    https://zhuanlan.zhihu.com/p/112213386

    https://www.cnblogs.com/mseddl/p/11470900.html

    https://www.cnblogs.com/daofaziran/p/10978628.html

    http://www.mamicode.com/info-detail-3070859.html

  • 相关阅读:
    《基于UML的电子病案管理系统的设计》文献阅读随笔
    《暗时间》读书笔记
    《基于物联网技术的无纸化电子病案管理系统设计与应用》文献阅读随笔
    文献随笔目录
    C语言程序设计第一次作业
    python基础 day24 面向对象——封装
    python基础 day23 面向对象相关
    python基础 day22 面向对象初识
    python基础 day21 re模块及shutil、logging模块
    python基础 day20 正则表达式及re模块及装饰器
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/13448099.html
Copyright © 2011-2022 走看看