【Redis】Redis主从复制(一)————主从搭建

2024-06-08 1466阅读

目录

  • 背景
  • 主从复制
    • 主从复制的工作流程
    • 主从复制的优点
    • 配置 redis 主从结构
      • 复制配置文件,修改
      • 配置主从结构
      • 启动 redis 服务
        • 备注
        • 查看复制状态

          背景

          单节点服务器的问题问题:

          • 可用性:如果这个机器挂了,意味着服务就中断了.
          • 性能:支持的并发量也是比较有限的.

            解决思路:引入分布式系统

            • 分布式系统中,往往需要多个服务器来部署 redis 服务,从而构成 redis 集群
            • 此时就可以让这个集群给整个分布式系统中的其他服务,提供更稳定 / 更高效的数据存储功能.

              主从复制

              • 主从复制是一种数据同步机制,用于在数据库之间实现数据的自动复制。
              • 在主从复制中,一个数据库(主数据库)被定义为主节点,负责接收和处理所有的写操作;
              • 而其他的数据库(从数据库)被定义为从节点,负责接收和复制主节点的数据更新。
              • 如果是挂掉了某一个从节点,没什么影响,此时继续从主节点或者其他从节点读取数据,效果是完全一样的.
              • 如果改掉的是主节点,是有一定影响的,因为主节点还负责 “写数据”

                主从复制的工作流程

                1. 主节点接收到一个写操作。
                2. 主节点将该写操作记录到其日志文件(二进制日志)中。
                3. 通过网络,主节点将该写操作发送给所有的从节点。
                4. 从节点收到该写操作后,将其记录到其日志文件(中继日志)中。
                5. 从节点执行该写操作,并将执行结果返回给主节点。
                6. 主节点将该写操作及执行结果记录到其日志文件中。
                7. 从节点将执行结果发送给客户端。

                通过主从复制,可以实现以下几个目的:

                1. 提高数据库的读性能:从节点可以处理读操作,减轻主节点的负载。
                2. 提高数据库的可用性:当主节点发生故障时,可以快速切换到从节点,保证系统的正常运行。
                3. 数据备份:从节点可以作为主节点的备份,以防止数据丢失。

                需要注意的是,主从复制只能实现数据的单向复制,即主节点到从节点的复制。如果希望实现数据的双向同步,可以使用主主复制机制。

                主从复制的优点

                1. 提高读性能:主从复制可以将读操作分发到从节点上进行处理,减轻主节点的读负载。通过增加从节点的数量,可以进一步扩展读吞吐量,提升系统的性能。

                2. 提高可用性:主从复制可以保证数据库的高可用性。当主节点发生故障时,可以将其中一个从节点提升为新的主节点,使系统继续正常运行而不会中断。

                3. 数据备份:从节点可以用作主节点的备份,保证数据的安全性。主节点的数据变更会被同步到从节点,从而实现数据的备份和恢复。

                4. 负载均衡:通过将读操作和写操作分离到不同的节点上处理,主从复制可以将负载分摊到多个节点上,提高系统的整体性能和吞吐量。

                5. 地理冗余:主从复制还可以用于实现地理冗余。通过将主节点和从节点部署在不同的地理位置上,可以保证在某个地区发生网络故障或自然灾害时,其他地区的节点可以继续提供服务。

                配置 redis 主从结构

                • 配置 redis 主从结构,需要启动多个 redis 服务器,分配在一个个单独的主机上(分布式),这里使用一台设备来模拟主从结构
                • redis-server 的端口是 6379 ,此时就不能让其他节点启动时也用 6379 了,我们有一下两种方式来指定 redis-server 的端口号:
                  • 启动程序时,通过命令的方式来指定端口号(–port 选项)
                  • 直接在配置文件中,来设定端口(推荐,因为修改配置文件,是持久有效的).

                    复制配置文件,修改

                    • 主节点的配置不变,只需要修改从节点的配置即可,因此我们只需要复制两份主节点的配置文件,并修改这两份文件的端口和后台运行方式即可.

                      【Redis】Redis主从复制(一)————主从搭建【Redis】Redis主从复制(一)————主从搭建【Redis】Redis主从复制(一)————主从搭建【Redis】Redis主从复制(一)————主从搭建

                      配置主从结构

                      • 在两个配置文件末尾加 slaveof 配置主从结构(绑定父节点为 6379 端口).

                        【Redis】Redis主从复制(一)————主从搭建

                        启动 redis 服务

                        • 通过 redis-server 命令来启动刚刚配置好的这两个节点.

                          【Redis】Redis主从复制(一)————主从搭建

                          备注

                          如果 redis 服务启动后修改了配置文件就需要重启才能起效。

                          • 如果是通过 redis-server 启动服务器,就必须搭配 kill 命令来停止.

                          • 如果是通过 service redis-server start 启动服务器,必须搭配 service redis-server stop 来停止.

                          • 如果使用 kill 命令停止 service redis-server start ,这个 redis-server 进程会自动启动.

                          • 通过 netstat -anp 命令就可以查看从节点和主节点的绑定情况

                            【Redis】Redis主从复制(一)————主从搭建

                          • 在复制两个会话,启动两个从节点的 redis 客户端,此时 redis 从节点上就只能读数据,不能写入数据了【Redis】Redis主从复制(一)————主从搭建【Redis】Redis主从复制(一)————主从搭建

                            查看复制状态

                            • 在 redis 客户端,通过 info replication 就可以查看当前节点的复制状态了.

                              【Redis】Redis主从复制(一)————主从搭建

                            • 在复制两个会话,启动两个从节点的 redis 客户端,此时 redis 从节点上就只能读数据,不能写入数据了

                              【Redis】Redis主从复制(一)————主从搭建【Redis】Redis主从复制(一)————主从搭建

                            • 值得注意的是,从节点和主节点之间的数据同步,不是瞬间完成的,并且同时主节点上也会 “源源不断” 的收到其他 “修改数据” 的请求
                            • 因此这个时候就需要使用 offset 来记录当前主节点和从节点的数据同步情况,当 从节点 的 offset 等于 主节点的 offset 时,表明此时数据完全一致.
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]