MST

星途 面试题库

面试题:缓存设计之中等难度:基于缓存的配置中心数据更新策略

在基于缓存的配置中心实现方案中,当配置数据发生变化时,通常有哪些缓存更新策略?请阐述每种策略的优缺点。
34.3万 热度难度
后端开发缓存设计

知识考点

AI 面试

面试题答案

一键面试

在基于缓存的配置中心实现方案中,配置数据变化时常见的缓存更新策略及其优缺点如下:

1. 立即失效(立即删除缓存)

  • 优点
    • 数据一致性强,配置数据一旦变化,缓存中的旧数据立即失效,下次请求能获取到最新配置。
    • 实现简单,只需在配置数据更新时,同时删除对应的缓存数据即可。
  • 缺点
    • 可能导致短时间内的性能问题,因为下次请求时缓存缺失,需要从数据源重新加载数据,可能会增加数据源的负载。
    • 如果连续频繁更新配置数据,会频繁出现缓存击穿问题(大量请求同时查询一个刚刚失效的缓存键)。

2. 定时失效(设置缓存过期时间)

  • 优点
    • 实现相对简单,只需在设置缓存时指定一个合理的过期时间。
    • 一定程度上兼顾了性能与数据一致性,在过期时间内,请求可以从缓存中快速获取数据,过期后会自动加载新数据。
  • 缺点
    • 无法保证数据实时一致性,在缓存过期时间内,配置数据即使发生变化,应用获取到的依然是旧数据。
    • 过期时间设置较难平衡,如果设置过短,会频繁从数据源加载数据,影响性能;设置过长,数据不一致的时间就会变长。

3. 异步更新(使用消息队列等异步机制)

  • 优点
    • 可以在不影响应用程序正常请求的情况下更新缓存,保证了系统的高可用性和性能。
    • 数据一致性相对较好,通过消息队列可以确保缓存更新操作最终执行,减少数据不一致的时间窗口。
  • 缺点
    • 增加了系统的复杂性,需要引入消息队列等额外组件,并处理消息的可靠投递、重复消费等问题。
    • 存在消息处理延迟的情况,如果消息队列出现故障,可能导致缓存更新不及时,造成数据不一致。