尚硅谷redis7 55-57 redis主从复制之理论简介

发布于:2025-05-28 ⋅ 阅读:(27) ⋅ 点赞:(0)

55 redis主从复制之理论简介

定义

Redis 主从复制(Master-Slave Replication)是 Redis 提供的一种数据冗余和高可用机制,可以让一个 Redis 主节点的数据复制到一个或多个从节点,实现读写分离容灾备份等功能。

  • 主节点(Master)

    • 支持读写操作。

    • 会将写操作传播到所有从节点。

  • 从节点(Slave)

    • 只能读,默认不支持写(除非配置为可写)。

    • 会从主节点同步数据,保持一致。

主从复制,master以写为主,Slave以读为主.当master数据变化的时候,自动将新的数据异步同步到其它slave数据库。

作用

  • 读写分离
  • 容灾恢复
  • 数据备份
  • 水平扩容支撑高并发

怎么玩

配从库不配主库:只在从库上配置主从关系,从库自动连接主库。你不需要在主库上做任何配置,只需要在从库上配置主节点的地址和端口,Redis 就能建立主从同步。

权限细节:在从库上配置主节点的地址和端口,Redis 就能建立主从同步。

master如果配置了requirepass参数【主节点开启了密码认证】,需要密码登陆那么slave就要配置masterauth来设置校验密码,否则的话master会拒绝slave的访问请求。masterauth 是 Redis 从节点连接主节点时用的认证信息。

基本操作命令

info replication       

        建立主从关系后,可以查看复制节点的主从关系和配置信息

replicaof 主库IP 主库端口

        建立主从复制关系。一般写入redis.conf配置文件内。当前 Redis 实例会连接到指定的主节点,开始全量同步,并接收写入命令的同步。例如:REPLICAOF 127.0.0.1 6379


slaveof 主库IP 主库端口

        建立主从复制关系,但每次与master断开之后,都需要重新连接,除非你配置进redis.conf文件【使用replicaof】
        用于在运行期间修改slave节点的信息。如果该数据库已经是某个主数据库的从数据库,那么会停止和原主数据库的同步关系转而和新的主数据库同步,重新拜码头

slaveof no one

        取消当前 Redis 实例的从库身份,使其退回为主库(master)。停止从其他主库同步数据。这在主库宕机后,手动切换从库为主库时很有用。

52 redis主从复制之演示架构

一个Master两个Slave:3台虚机,每台都安装redis

拷贝多个redis.conf文件:redis6379.conf、redis6380.conf、redis6381.conf

前提:三边网络相互ping通且注意防火墙配置

三大命令

主从复制:在从库配置的redis.conf文件中配置 replicaof 主库IP 主库端口

改换门庭:若在配置文件中写好了要复制的主库,此时想改复制的主库。可以使用slaveof 新主库IP 新主库端口

自立为王:取消当前 Redis 实例的从库身份,使其退回为主库(master)

57 redis主从复制之配置细节

修改配置文件细节操作

redis6379.conf为例,步骤【前提将redis.conf文件复制到/myredis下】

1. 开启daemonize yes
2. 注释掉bind 127.0.0.1
3. protected-mode no
4.指定端口 port 6379

        【在操作系统层面,一个端口(比如 6379)在同一台机器上只能被一个 Redis 实例绑定。因此从机,主机 的端口号不能相同。】

5. 指定当前工作目录,dir /myredis
6. pid文件名字,pidfile   默认的不需要修改
7.log文件改名字,logfile "/myredis/6379.log"      
8. 设置requirepass 开启密码认证
9. 改dump.rdb名字
10.开启aof  aof文件,appendfilename【步骤可选非必须】
11. 从机访问主机的通行密码masterauth,必须【仅需从机配置】

从机配置

启动 Redis 之后,可以通过 redis.conf 中配置的 日志文件路径(logfile)查看 Redis 的运行日志,从中判断是否成功连接主机(主节点)或从机(从节点)。


网站公告

今日签到

点亮在社区的每一天
去签到