今天我们来聊聊缓存一致性问题,对于这个问题,不管在工作中还是面试中,都是一个非常常见的问题。
今天我们的主题是: 缓存一致性问题
老规矩,上大纲:
1、缓存一致性问题是什么
我们知道,缓存的工作原理是先从缓存中获取数据,如果有数据则直接返回给用户,如果没有数据则从慢速设备上读取实际数据并且将数据放入缓存。就像这样:
但是,这样的架构是存在问题的, 因为数据库与缓存是不同的组件,操作必须有先后顺序,无法像数据库的事务一样满足ACID的特性,所以就会出现数据在缓存中与在数据库中不一致的问题 。
缓存一致性问题的表现:同一份数据,缓存中的数据与数据库中的数据不一致,那么上升到业务层面就有着千奇百怪的现象了,比如每次读都是读的老数据,或者每次读是一份过时的数据等。
2、解决方案
对于写入操作:
-
只写DB,不写Cache,依