企业官网免费,惠州百度关键词优化,江西建设监理协会网站,推荐30个国外优秀的设计教程网站命令 优势 支持高达10亿级的数据缓冲#xff0c;内存优化管理#xff0c;避免GC性能劣化。 高并发系统设计#xff0c;可充分利用多CPU资源实现并行处理。 数据采用key-value多索引方式存储#xff0c;字段类型和长度可配置。 支持多台服务并行运行#xff0c;服务之间可互…命令 优势 支持高达10亿级的数据缓冲内存优化管理避免GC性能劣化。 高并发系统设计可充分利用多CPU资源实现并行处理。 数据采用key-value多索引方式存储字段类型和长度可配置。 支持多台服务并行运行服务之间可互为主备实现负载分担。 数据同步采用独立队列同步异常不影响主业务。 支持数据有效期设置过期数据自动回收。 服务重启时可从其他服务获取在线数据单台服务故障不影响整个系统 中心和服务节点区别 主从模式 主节点master负责数据写入从节点slave数据读取和备份. 若主节点发生故障需人工介入将某个从节点提升为新的主节点无法实现高度自动化。 主从模式特点 主从关系的配置一个主库对应多个从库一个从库对应一个主库从库的容错能力从库故障对系统其他部分的影响小。即使在从库宕机的情况下其他从库仍可提供读服务主库也能继续正常的读写操作。故障的从库在恢复后能自动从主库同步缺失数据。主库故障的影响主库故障可能导致Redis暂停处理新的写请求但已连接的从库可继续提供读服务。主库恢复后Redis将重新提供完整的读写服务。应对主库故障的机制在当前主库故障时系统不会自动在从库中选举新的主库。这需要借助额外的高可用性解决方案例如Redis Sentinel或Redis Cluster来管理主库的选举和故障转移
复制原理异步复制不能完全保证主从数据的一致性。第一次启动在从库第一次连接到主库时将采用psync复制方式进行全量复制。这意味着从库会从头开始复制主库中的全部数据。正常运行期间在正常运行状态下从库通过读取主库的缓冲区来进行增量复制。这个过程涉及复制主库上发生的新的数据变更。从库第二次启动主库缓冲区未溢出 当从库重新启动且主库的缓冲区未溢出时将通过读取主库的缓冲区进行部分复制。这种方式能够快速同步中断期间发生的数据变更而不会对主库造成重大影响。 Redis 2.8及以上版本的从库第二次启动针对主库 当从库第二次启动且系统版本为Redis 2.8或以上时将采用psync复制进行全量复制。这种情况通常发生在主库的缓冲区数据无法满足从库需要同步的数据量 哨兵模式 哨兵模式主要通过后台监控机制来确保Redis服务的稳定性。 在这一模式中哨兵负责实时监控主节点的运行状况。一旦主节点出现故障哨兵将基于预设的投票机制自动将某个从节点晋升为新的主节点以保持服务的连续性和数据的可用性。 优势继承了主从复制的所有优势自动实现从切换和故障转移即使主节点发生故障系统也能迅速自动切换到备用节点确保服务的连续性和可用性。 劣势在线扩容方面当集群容量接近或达到上限时候扩容操作复杂 redis2.8及后续版本官方引入了Sentinel(哨兵)架构 Cluster模式 定义每个从节点都复制主节点的数据但不直接参与读写操作主要用于数据备份和故障恢复。 这种架构使得每个节点都可以在需要时承担主节点的角色从而提高了整体系统的可靠性和容错能力。 支持更大规模的数据存储和管理 PSYNC 启动或重连判断当从节点Slave启动或与主节点Master的连接断开后重连时从节点需要确定是否曾经同步过。 如果从节点没有保存任何主节点的运行IDrunid它将视为第一次连接到主节点。 第一次同步处理在第一次同步的情况下从节点会发送 PSYNC -1 命令给主节点请求进行全量数据同步。 全量同步是指主节点将其所有数据完整地复制一份给从节点。 断线重连处理对于之前已经同步过的从节点它会发送 PSYNC runid offset 命令其中runid是主节点的唯一标识符offset是从节点上次同步数据的偏移量。 主节点的响应主节点接收到PSYNC命令后会检查runid是否匹配以及offset是否在复制积压缓冲区的范围内。 如果匹配且offset有效主节点将回复CONTINUE并发送自从节点上次断开连接以来的所有写命令。全量同步触发条件如果runid不匹配或offset超出了积压缓冲区的范围主节点将通知从节点执行全量同步回复FULLRESYNC runid offset。 复制积压缓冲区的作用主节点会在处理写命令的同时将这些命令存入复制积压队列同时记录队列中存放命令的全局offset。 当从节点断线重连且条件允许时它可以通过offset从积压队列中进行增量复制而不是全量复制。数据一致性保障PSYNC机制允许从节点在网络不稳或其他意外断开连接的情况下能够以增量方式重新同步数据保持主从节点数据的一致性。 PS判断是否进行全量同步需要考虑两个关键因素首先确认这是否是第一次进行数据同步其次检查缓存区是否已经达到或超过其容量上限。只有在是第一次同步或者缓存区已溢出的情况下才会执行全量同步。