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

参考答案

只要用缓存,就可能会涉及到缓存与数据库双存储双写。只要是双写,就一定会有数据一致性的问题。

如何解决数据一致性的问题呢?有两个方案供参考:

解决方案一:读请求和写请求串行化,串到一个内存队列里去。

这种方式可以保证一定不会出现不一致的情况。

串行化之后,会导致系统的吞吐量会大幅度的降低,用比正常情况下多几倍的机器去支撑线上的一个请求。

一般来说,如果系统不是严格要求缓存+数据库必须一致性,缓存可以稍微的跟数据库偶尔有不一致的情况,最好不要做这个方案。

解决方案二:先更新数据库,然后再删除缓存。

这种方式可能会暂时产生不一致的情况,但是发生的几率特别小

 

以上,是Redis面试题【如何保证缓存与数据库双写时的数据一致性】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧