MST

星途 面试题库

面试题:Redis与MySQL数据同步延迟优化之缓存更新策略

在Redis与MySQL数据同步场景下,简述常见的缓存更新策略(如Cache - Aside、Read - Through、Write - Through、Write - Behind Caching),并说明每种策略在应对数据同步延迟方面的优缺点。
26.0万 热度难度
数据库Redis

知识考点

AI 面试

面试题答案

一键面试

Cache - Aside

  • 策略简述:应用程序先更新数据库,再删除缓存。读操作时先查缓存,缓存没有则查数据库并将结果放入缓存。
  • 优点:实现简单,应用程序对缓存和数据库的控制清晰,能保证数据一致性,一般数据同步延迟下能较好工作。
  • 缺点:在高并发场景下,更新数据库和删除缓存操作非原子,可能出现短暂数据不一致。若删除缓存失败,后续读操作可能读到旧数据。

Read - Through

  • 策略简述:应用程序只与缓存交互,缓存负责从数据库加载数据。读操作时,缓存缺失则缓存从数据库读取并写入自身。写操作时,先更新数据库,再让缓存失效(或更新缓存)。
  • 优点:应用程序代码简化,缓存负责数据加载逻辑。读操作有较好的性能,缓存可对读请求做优化。在一定程度能隐藏数据库延迟,对数据同步延迟容忍度相对较高。
  • 缺点:缓存系统复杂度增加,需要处理与数据库交互。写操作时若先更新数据库成功,更新缓存失败,会导致数据不一致,增加处理难度。

Write - Through

  • 策略简述:应用程序写操作时,同时更新缓存和数据库,读操作直接从缓存读取。缓存负责保证数据库与自身数据一致,写操作先写入缓存,缓存再同步写入数据库。
  • 优点:数据一致性好,读操作性能高,能即时响应读请求。由于缓存直接更新数据库,可减少数据同步延迟带来的不一致问题。
  • 缺点:写操作性能受数据库性能限制,每次写都要操作数据库,若数据库性能瓶颈,整体写性能下降。缓存与数据库耦合度高,增加缓存维护成本。

Write - Behind Caching

  • 策略简述:应用程序写操作时,只写入缓存,缓存异步批量更新数据库。读操作先查缓存,缓存没有再查数据库并更新缓存。
  • 优点:写操作性能极高,适用于高并发写场景,可显著减少数据库压力。缓存批量操作数据库,提高数据库写入效率。
  • 缺点:数据一致性最差,由于异步更新,数据从缓存到数据库存在延迟,在延迟期间可能读到旧数据。缓存故障可能导致数据丢失,需要复杂的缓存持久化和恢复机制。