文章预览
嗨,我是鸭哥。 多年的编程生涯中,面试经历不少,其中不乏一些经典的问题。 今天就跟大家聊聊字节跳动的二面问题: 主节点的Key已过期,但从节点依然读到过期数据是为什么?怎么解决? 这问题看似简单,其实涉及到Redis的工作机制和主从同步的细节。咱们先从根本上剖析一下。 现象剖析 首先,为什么会出现这种情况?简单来说,这是因为Redis主从架构中的数据同步机制。 Redis采用的是异步复制(Asynchronous Replication)。这意味着主节点上的某些操作(比如键过期)并不会立即同步到从节点。 主节点上的Key过期了,但从节点可能还没收到这个过期通知,所以它依然能读到这些过期的数据。这好比你早上定了个外出的闹钟,结果起床时家里人还在呼呼大睡,信息没同步啊! 解决方案 那我们怎么解决这个问题呢?这里我列几个思路和方法,结合
………………………………