MST

星途 面试题库

面试题:Redis在分布式系统中常见的容错机制有哪些

请简要阐述Redis在分布式系统场景下,为保证容错性所采用的常见机制及其原理。
35.3万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

主从复制机制

  1. 原理:主节点将数据的写操作通过命令传播的方式同步给从节点。从节点会以每秒一次的频率向主节点发送 REPLCONF ACK 命令,汇报自己的复制偏移量。主节点会记录所有从节点的复制偏移量,用于判断从节点是否落后。当主节点有新的写操作时,会把写命令发送给所有从节点,从节点接收并执行这些命令,从而保持数据的一致性。
  2. 容错作用:当主节点出现故障时,从节点可以被提升为主节点继续提供服务,保证系统的可用性。

Sentinel(哨兵)机制

  1. 原理:Sentinel 是一个分布式系统中用于监控 Redis 主从集群的系统。它通过定期向主节点和从节点发送 PING 命令来检测节点的健康状态。如果一个节点在指定时间内没有响应 PING 命令,Sentinel 会判定该节点主观下线(SDOWN)。当多个 Sentinel 都认为主节点主观下线时,会进行一次投票,当达到一定数量(quorum)的 Sentinel 都认为主节点下线时,会判定主节点客观下线(ODOWN)。然后 Sentinel 会在从节点中选举一个新的主节点,并通知其他从节点切换到新主节点。
  2. 容错作用:自动检测主节点故障,并完成故障转移,确保集群在主节点故障时仍能正常工作。

Cluster(集群)机制

  1. 原理:Redis Cluster 采用无中心的结构,每个节点负责一部分数据槽(slot),共 16384 个数据槽。节点之间通过 Gossip 协议进行通信,互相交换状态信息。当某个节点出现故障时,其他节点会通过 Gossip 协议感知到。如果半数以上负责该节点数据槽的主节点认为该节点故障,会将其标记为客观下线,并从集群中移除故障节点,将其负责的数据槽迁移到其他节点。
  2. 容错作用:在部分节点故障时,仍能保证集群的大部分功能可用,通过数据槽的迁移实现数据的重新分布,维持系统的整体运行。