缓存更新策略

本项目使用缓存更新策略是:cashe aside (预留缓存模式)

即:

1. 首先尝试从缓存读取,读到数据则直接返回;如果读不到,就读数据库,并将数据写到缓存中,并返回。

2. 需要更新数据时,先更新数据库,然后把缓存里对应的数据删掉(将它失效)

首先确定的是使用先更新数据库,再更新缓存(淘汰缓存)的方法。防止多线程的情况下,更新缓存和更新数据库不一致,存在脏数据。

为什么吧缓存的数据删掉?而不是把更新的数据写到缓存里。

如果有A,B两个线程同时做数据更新,A先更新数据库,B后更新数据库,则此时数据库里存的是B的数据。而更新缓存的时候,是B先更新了缓存,A后更新了缓存,则缓存里面是A的数据。这样缓存里数据和数据库里的数据就不一致了。

猜你喜欢

转载自blog.csdn.net/weixin_39590058/article/details/87977008