当前位置: 首页 > news >正文

自学软件网站开发如何制作香水 简单

自学软件网站开发,如何制作香水 简单,电子商务网站建设职业技能目标,北京网站开发怎么做首发博客地址 https://blog.zysicyj.top/ Redis高可靠靠什么保证#xff1f; 为什么要提这个呢#xff0c;因为Redis主从库目的呢其实就是为了实现高可靠。上篇文章中我们说过Redis的AOF、RDB日志其实就是为了减少数据丢失#xff0c;这是高可靠的一部分。 这篇文章呢#… 首发博客地址 https://blog.zysicyj.top/ Redis高可靠靠什么保证 为什么要提这个呢因为Redis主从库目的呢其实就是为了实现高可靠。上篇文章中我们说过Redis的AOF、RDB日志其实就是为了减少数据丢失这是高可靠的一部分。 这篇文章呢我们聊聊Redis实现高可靠的另一方面尽量减少服务中断。这里Redis是怎么做的呢Redis的做法是增加副本冗余将一份数据同时保存在多个实例上。这样某个实例挂掉并不影响其它实例提供对外服务保证我们的业务正常运行。 Redis有哪些手段提高高可用呢 数据持久化Redis 支持多种数据持久化方式包括快照snapshotting和日志append-only file。快照会定期将内存中的数据保存到磁盘文件而日志会记录每次写操作以便在重启时进行恢复。这些持久化方式可以确保即使服务器意外关闭数据也不会丢失。 主从复制Redis 支持主从复制机制其中一个 Redis 实例作为主节点负责写操作而其他实例作为从节点负责复制主节点的数据。这种方式可以实现数据的备份和负载均衡从而提高可靠性和性能。 Sentinel 哨兵Redis Sentinel 是一个监控和自动故障恢复系统可以监控 Redis 实例的健康状态并在主节点故障时自动进行故障切换。它可以确保系统在主节点发生故障时能够自动切换到备用的从节点保证服务的连续性。 Cluster 集群Redis Cluster 是一种分布式系统将数据分布在多个节点上以提高可用性和扩展性。每个节点都持有部分数据并且可以容忍部分节点的故障。当节点发生故障时集群可以自动重新分配数据确保服务的可靠性和高可用性。 如何保证副本数据一致 首先我们要知道Redis提供了主从库模式以保证副本一致主从库之间采用的是读写分离的方式。 Redis主从库和读写分离 Redis中的读写分离基本原理和步骤 Redis 读写分离是一种架构设计将读操作和写操作分别路由到不同的 Redis 节点上以提高性能和扩展性。在 Redis 读写分离中通常会有一个主节点负责写操作多个从节点负责读操作。 主节点写节点 主节点负责处理所有的写操作包括写入、更新和删除等。 写操作在主节点上执行然后主节点将写操作的结果同步到所有从节点。 从节点读节点 从节点负责处理读操作例如获取数据、查询等。 从节点从主节点复制数据并在本地保存一份与主节点相同的数据副本。 读写分离的实现 客户端根据需要的操作类型将请求分发到主节点或从节点。 读操作可以通过负载均衡策略将请求分发到不同的从节点实现负载分担。 写操作仍然发送给主节点确保数据的一致性和完整性。 需要注意的是Redis 读写分离并不是完全的数据实时同步因为从节点的数据可能会有一定的延迟。另外读写分离适用于大多数场景下的负载均衡和性能优化但在一些特定情况下例如有序集合等复杂数据结构的查询仍然需要访问主节点。 实现 Redis 读写分离需要正确配置主从节点的关系以及在客户端中使用合适的策略进行读写操作的路由。同时需要注意主节点和从节点之间的数据同步和故障处理以确保系统的稳定性和可靠性。 Redis主从库第一次同步是如何实现的 建立连接 从服务器会向主服务器发送 PSYNC 命令表示要进行同步。主服务器收到 PSYNC 命令后会创建一个专门用于复制的后台线程replication thread并等待从服务器的连接。 全量复制第一次同步 当从服务器连接到主服务器后主服务器会将自己的数据发送给从服务器。这个过程叫做全量复制主服务器会遍历自己的数据集将所有数据发送给从服务器。 主服务器会在一个 RDB 文件中保存当前数据集的快照然后将这个 RDB 文件发送给从服务器。从服务器接收到 RDB 文件后会加载这个文件将自己的数据集替换成主服务器的数据集。 在 RDB 文件传输的过程中主服务器会将在传输期间的写操作记录下来称为命令传播command propagation。这样一来主服务器就能够在发送完 RDB 文件后将期间的写操作重新发送给从服务器以保证从服务器的数据集与主服务器保持一致。 增量复制 在完成全量复制后主从服务器之间会保持一个 TCP 连接主服务器会将自己的写操作发送给从服务器从服务器执行这些写操作从而保持数据一致性。增量复制的数据同步是异步的但通过记录写操作主从服务器之间的数据最终会达到一致状态。 需要注意的是在第一次全量复制的过程中可能会有一些网络故障、主从服务器负载等情况影响同步。为了提高稳定性和安全性Redis 提供了一些配置选项和机制如持久化、复制偏移量、主服务器验证等来确保主从复制的正常进行。 PSYNC命令 当 Redis 主从复制中的从服务器Slave需要与主服务器Master进行数据同步时可以使用 PSYNCPartial SYNC命令。PSYNC 命令在 Redis 2.8 版本引入用于提高数据同步的效率和可靠性。 PSYNC 命令包括两种模式完全同步Full Sync和部分同步Partial Sync。 完全同步Full Sync 完全同步在以下情况下发生 从服务器初次连接主服务器时。 从服务器需要进行初次同步或者复制偏移量与主服务器的偏移量差距较大时。 主服务器没有保存 RDB 快照文件所以无法进行部分同步。 完全同步的过程如下 从服务器向主服务器发送一条 PSYNC 命令并附带上自己的复制积压缓冲区的偏移量offset和 replid复制 ID。 主服务器使用 bgsave命令生成RDB文件接着将文件发给从库。 从库接收到RDB文件后会先清空当前数据库然后加载RDB文件。 部分同步Partial Sync 部分同步在以下情况下发生 从服务器已经复制了一部分数据并且复制偏移量与主服务器的偏移量差距较小时。 部分同步的过程如下 主库将后续所有 写操作记录到内存中的replication buffer中 从服务器向主服务器发送一条 PSYNC 命令并附带上自己的复制积压缓冲区的偏移量和 replid。 主库将所有保存的写操作发送给从库具体来说就是当RDB发送完成后就会把此时replication buffer中的修改发给从库从库再重新执行这些操作。这样一来主从库就实现同步了 PSYNC 命令的目标是在保证数据一致性的前提下尽可能地减少数据同步所需的数据传输量从而提高复制效率。完全同步和部分同步的选择取决于从服务器与主服务器之间的复制状态和数据差距。 主库的烦恼 这里我们能分析得到主库做全量同步时的两个耗时操作 生成RDB文件 传输RDB文件 这里设想一个场景如果是一主多从的架构那么主节点就要生成多份RDB并传输给从节点很显然这种操作是非常耗时的。这里主要占用两块资源 通过fork子进程生成RDB快照会 阻塞主线程处理请求 传输RDB文件会占用 网络带宽 那么有什么方法可以解决这些问题呢 这里呀我们就引入了“主-从-从”架构很容易理解就是主库只需要同步一份给某从库A其他从库从从库A同步数据。 如何理解 主-从-从 架构 主从Master-Slave架构是一种常见的数据库复制和数据备份方案。在这种架构中存在一个主数据库主服务器和一个或多个从数据库从服务器主数据库负责处理写操作和读操作从数据库负责复制主数据库的数据以提供读取操作和备份。 主从架构的工作方式如下 主数据库主服务器 主数据库是系统的主要数据库负责处理所有的写操作数据的插入、更新、删除和部分读操作。 当主数据库接收到写操作时会将这些写操作记录到自己的日志文件例如 MySQL 的二进制日志中并发送给从数据库。 主数据库也会保存一个复制积压缓冲区replication backlog buffer其中存储了一部分的写操作数据用于满足部分同步和断线重连的需求。 从数据库从服务器 从数据库是主数据库的复制副本负责从主数据库复制数据以供读取操作和备份。 从数据库会连接到主数据库并发送复制请求如 PSYNC 命令以获取主数据库的数据更新。 从数据库会持续地复制主数据库的写操作将写操作应用到自己的数据副本中以保持与主数据库的数据一致性。 从数据库可以处理读取请求从而减轻主数据库的读取压力。 主从架构的优势 负载均衡 通过将读操作分发给从数据库可以分担主数据库的读取压力提高整体系统的吞吐量。 高可用性 当主数据库出现故障时可以将其中一个从数据库提升为新的主数据库从而实现快速故障切换。 数据备份 从数据库可以作为主数据库的数据备份用于恢复数据和灾难恢复。 数据分析 从数据库可以用于读取操作以进行数据分析、报表生成等工作而不影响主数据库的性能。 需要注意的是主从架构并不是完全实时的因为从数据库需要时间来同步主数据库的数据更新。因此在考虑使用主从架构时需要权衡数据一致性和性能之间的需求。 如何配置主从从架构呢 安装和配置主服务器Master 安装Redis主服务器并确保主服务器正常运行。 在主服务器的配置文件redis.conf中开启持久化通常使用RDB快照或AOF日志和监听端口确保配置项如下 port 6379save 900 1appendonly yes  # 如果使用AOF日志 如果需要对外提供访问确保防火墙或网络设置允许访问主服务器的6379端口。 安装和配置第一个从服务器Slave1 在从服务器1上安装Redis数据库。 在从服务器1的配置文件中配置主从关系。在配置文件中添加类似如下的内容其中 masterauth是主服务器的密码 master是主服务器的IP和端口 slaveof master_ip master_portmasterauth your_master_password 重启从服务器1使配置生效。 安装和配置第二个从服务器Slave2 在从服务器2上安装Redis数据库。 在从服务器2的配置文件中配置主从关系与从服务器1相似。确保配置项不冲突。 重启从服务器2使配置生效。 重启主服务器 在主服务器上查看主服务器的信息如IP和端口。通常使用以下命令 INFO server 测试主从从架构 在主服务器上进行写操作如插入、更新或删除数据。 查看从服务器1和从服务器2是否同步了主服务器的数据。 需要注意的是Redis的主从从架构在部署和配置上与主从架构类似只是需要在从服务器上再次配置主从关系。另外Redis还可以配置更多高可用性的功能如哨兵Sentinel和集群Cluster以实现更强大的架构。具体配置细节可能会因版本和需求而有所不同建议参考官方文档或相关资源进行详细了解和配置。 主从库间网络断了怎么办 在 Redis 2.8 之前如果主从库在命令传播时出现了网络闪断那么从库就会和主库重新进行一次全量复制开销非常大。 2.8之后呢是支持增量同步的那么Redis是怎么实现增量同步的呢 当Redis主从库之间的网络断开后网络恢复时从库需要进行增量同步以获取在网络断开期间主库中的更新数据。Redis实现增量同步的方式是通过Redis复制机制具体流程如下 保存主服务器的数据 主服务器会将更新的数据写入内存并在内存中保存一份副本。同时主服务器会将更新的数据写入AOFAppend-Only File日志文件以便在断电或宕机情况下能够进行数据恢复。 记录复制偏移量 在主服务器的复制过程中主服务器会记录一个复制偏移量replication offset表示从服务器在主服务器中的数据位置。这个偏移量会随着数据的更新而递增。 网络恢复 当网络恢复时从服务器会尝试连接主服务器并请求进行复制。 发送SYNC命令 从服务器会发送SYNC命令给主服务器。如果是初次连接复制从服务器发送的SYNC命令中不包含任何参数。如果是增量同步从服务器会发送带有偏移量参数的SYNC命令。 全量复制或部分复制 根据情况主服务器会执行全量复制或部分复制 全量复制初次连接 如果是初次连接复制主服务器会执行全量复制。它会创建一个RDB快照数据库快照将数据库中的数据快照发送给从服务器。这样从服务器就能够拥有主服务器的完整数据集。 部分复制增量同步 如果是增量同步主服务器会从记录的偏移量处开始将从偏移量后的所有更新数据发送给从服务器。这样从服务器就能够获取在断开网络期间主服务器的更新数据。 复制数据传输 主服务器会将全量数据或增量数据通过网络传输给从服务器。从服务器会接收并处理这些数据更新自己的数据集。 复制过程继续 一旦复制数据传输完成从服务器会持续地与主服务器保持连接接收来自主服务器的增量更新。这样主从库之间的数据保持同步。 需要注意的是当网络断开时间较长或断开期间数据更新较大时增量同步可能会导致从服务器落后于主服务器。在网络恢复后从服务器需要足够的时间来接收和处理更新数据以保持与主服务器的数据同步。 一般的排查流程 检查网络连接问题 首先确保网络连接问题的确是造成主从库通信中断的原因。检查网络配置、防火墙规则、路由等设置确保主从库之间可以互相访问。 重新连接网络 如果网络问题是暂时的你可以尝试恢复网络连接让主从库之间恢复通信。 检查主从状态 在主从库网络连接恢复后使用INFO replication命令检查主从库的同步状态。确保主库已将数据同步到从库。 手动重新同步 如果主从库之间的网络断开时间较长可以考虑进行手动重新同步 在从库上使用 SLAVEOF NO ONE命令解除从库状态。 在从库上删除持久化文件RDB文件或AOF文件。 在从库上执行 SLAVEOF master_ip master_port命令将其重新设置为主库的从库。 在主库上执行 SLAVEOF NO ONE命令解除主库状态。 在主库上执行 SLAVEOF slave_ip slave_port命令将其重新设置为从库的主库。 手动复制数据 如果网络断开时间较长且重新同步不可行你可能需要手动复制数据。在主库上导出数据并在从库上导入数据。 备份和恢复 如果网络问题无法解决你可能需要在网络恢复后考虑从主库重新备份数据然后在从库上进行数据恢复。 总结 文章中介绍了Redis主从库架构以及如何配置、维护和解决主从库网络断开的问题。以下是文章中涉及到的主要内容 Redis主从库架构及其保证的高可靠性 Redis主从库的目的是实现高可靠性通过数据持久化、主从复制、Sentinel哨兵和Cluster集群等方式来保障数据的安全性和可用性。 如何保证副本数据一致 Redis通过全量复制和部分复制增量同步来保证主从库之间的数据一致性。复制偏移量和复制积压缓冲区等机制用于记录和传输数据。 主从库第一次同步的过程 主从库之间的第一次同步涉及主服务器创建RDB快照发送给从服务器以及记录期间的写操作进行命令传播。 PSYNC命令和增量同步 PSYNC命令用于主从库网络断开后的增量同步。完全同步用于初次连接部分同步用于增量同步从而减少数据传输量。 主从从架构及其优势 主从从架构是在主从架构基础上的扩展通过级联的方式减轻主服务器的复制压力实现更高的可用性和负载均衡。 配置主从从架构的步骤 安装和配置主服务器从服务器1和从服务器2。 重启主服务器查看主服务器信息。 进行测试验证主从库之间是否同步。 解决主从库间网络断开问题 检查网络连接问题确保主从库之间可以互相访问。 重新连接网络恢复通信。 检查主从状态确保同步。 手动重新同步尝试恢复数据一致性。 手动复制数据或备份恢复数据。 本文由 mdnice 多平台发布
http://www.sadfv.cn/news/425223/

相关文章:

  • 国外美容网站西安百度首页优化
  • 什么是营销型网站项目经理接到网站开发怎么开展
  • 南桥网站建设黄岩路桥网站设计
  • 现今网站开发的主流框架中国做的手机系统下载网站
  • 阿里巴巴网站优化红色大气网站
  • 网站建设的初衷怎么做弹幕视频网站
  • 网站更新前知道内容做网站的可行性分析
  • 做民宿网站的系统可行性东莞常平粤海水务
  • html 网站链接wordpress线报主题
  • 收费抽奖网站平面设计师岗位职责和任职要求
  • 福建大舟建设集团有限公司 网站广州四楚seo顾问
  • 网页与网站设计工作内容业务外包服务公司
  • wordpress网站分享微信群湖州高端网站建设公司
  • 深圳建设工程交易中心网站天津建设工程信息网专家登录
  • 天津 公司做网站现在怎么做网络推广
  • 那个旅游网站可以做行程wordpress没有远程发布
  • 网站建设公司外链怎么做建筑清单网
  • 网上手机网站建设计划书用windows建设网站好吗
  • 做网站找个人还是找公司好龙岩城乡建设局网站
  • 网站不想备案网站建设免费建站源代码
  • 陕西省和城乡建设厅网站海外推广代理商
  • 合肥专业做网站公司哪家好wordpress账号重置密码忘记
  • 不建立网站建设的利弊青海省公路工程建设信息网站
  • 时彩网站开发亿河南网站开发
  • 好的结构设计网站晋中建设局查合同网站
  • 网络建站行业怎么样广元市利州区建设局网站
  • 北京网站制作的流程wordpress 主题 不兼容
  • 网站设计常用软件都有哪些网站服务器的选择有哪几种方式?
  • 广州 济南网站建设公司 网络服务济南网站制作价格
  • 做网站攻击建设网站需要了解些什么东西