如何解决数据一致性问题?如何保证缓存与数据库的双写一致性?

  • Post author:
  • Post category:其他


如何保证缓存与数据库的双写一致性?

面试题

如何保证缓存与数据库的双写一致性?

面试官心理分析

你只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题,那么你如何解决一致性问题?

面试题剖析

一般来说,如果允许缓存可以稍微的跟数据库偶尔有不一致的情况,也就是说如果你的系统

不是严格要求

“缓存+数据库” 必须保持一致性的话,最好不要做这个方案,即:

读请求和写请求串行化

,串到一个

内存队列

里去。

串行化可以保证一定不会出现不一致的情况,但是它也会导致系统的吞吐量大幅度降低,用比正常情况下多几倍的机器去支撑线上的一个请求。

Cache Aside Pattern

最经典的缓存+数据库读写的模式,就是 Cache Aside Pattern。

  • 读的时候,先读缓存,缓存没有的话,就读数据库,然后取出数据后放入缓存,同时返回响应。
  • 更新的时候,

    先更新数据库,然后再删除缓存



版权声明:本文为wenlin_xie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。