2024-01-25-redis5

主从复制

        1.主从复制是什么

        Redis的主从复制(Master-Slave Replication)是一种数据复制机制,用于在多个Redis服务器之间同步数据。它通过将一个Redis服务器(主节点)的数据复制到其他Redis服务器(从节点)上来实现数据的备份和读取负载均衡。

        2.工作原理

  1. 配置主节点:在主节点上,你需要在Redis配置文件中设置replicaof指令,指定从节点的IP地址和端口。例如,replicaof <ip> <port>

  2. 连接从节点:启动从节点的Redis服务器,并确保从节点能够连接到主节点。从节点会发送一个SYNC命令给主节点,请求复制数据。

  3. 全量复制:主节点接收到SYNC命令后,会执行一个全量复制过程。在全量复制期间,主节点会将所有的数据发送给从节点。这一过程会导致主节点的性能短暂下降。

  4. 增量复制:当全量复制完成后,主节点会将所有的写操作记录发送给从节点,从节点会按顺序执行这些写操作,以保证两者之间的数据一致性。

  5. 同步延迟:由于网络延迟等原因,从节点的数据可能会略有延迟。你可以使用INFO命令查看从节点的状态信息,包括同步延迟时间。

        3.能带来什么好处

  • 高可用性:当主节点发生故障时,从节点可以接管成为新的主节点,从而保证系统的可用性。
  • 读写分离:主节点负责写操作,而从节点负责读操作,可以提高系统的整体读取性能。
  • 数据备份:从节点作为主节点的副本,可以提供数据备份和灾难恢复的能力。

        4.配置主从复制

       配置一个主机,两个从机,因为我设备问题这里配置一个伪主从,实际效果是差不多的

        1.创建三个redis的配置文件

touch redis6380.conf redis6381.conf redis6382.conf

        2.对内容进行修改

        切忌设置密码!!!!!

        另外两个就是将该内容中的6380全部修改为对应的即可

        3.启动redis

        通过口令查看一些确认开启成功

        4.配置主从,我们将81跟82设置成从

                连接到redis6381和redis6382允许配置的命令

slaveof 192.162.162.33 6380

##slaveof (ip) (端口号)

                        连接到redis6380中查看一下状态

                出现以上内容即为成功

        5.复制模式

        薪火相传

        上一个Slave可以是下一个slave的Master,Slave同样可以接收其他 slaves的连接和同步请求,那么该slave作为了链条中下一个的master, 可以有效减轻master的写压力,去中心化降低风险。

        设置很简单,在上面的基础上将82的主改成81即可,这一模式的问题是中间的如果宕机了,这一模式就出问题了。

        反客为主

        当一个master宕机后,后面的slave可以立刻升为master,其后面的slave不用做任何修改。

用 slaveof no one 将从机变为主机。

        哨兵模式

        反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

        自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错 

        配置

sentinel monitor mymaster 192.168.162.33 6380 1

        其中mymaster为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量。

        启动

        执行redis-sentinel

        之后重启的主机会变为从机

相关推荐

  1. 2024-01-24-redis学习笔记

    2024-01-27 21:30:01       39 阅读
  2. 2024-01-25(ElasticSearch)

    2024-01-27 21:30:01       57 阅读
  3. 2024.5.25

    2024-01-27 21:30:01       31 阅读
  4. Web3创作整理 - 2024-02-23 ~ 2024-03-25

    2024-01-27 21:30:01       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-27 21:30:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-27 21:30:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-27 21:30:01       82 阅读
  4. Python语言-面向对象

    2024-01-27 21:30:01       91 阅读

热门阅读

  1. elasticsearch优化总结

    2024-01-27 21:30:01       42 阅读
  2. JVM多线程读写和锁

    2024-01-27 21:30:01       63 阅读
  3. 51单片机编译没有报错,但是下载后程序不更新

    2024-01-27 21:30:01       55 阅读
  4. 向量数据库知识积累

    2024-01-27 21:30:01       48 阅读
  5. 使用docker 搭建palworld 服务器

    2024-01-27 21:30:01       54 阅读