# 缓存和数据库一致性问题
https://zhuanlan.zhihu.com/p/408515044
先更新缓存还是先删除缓存?
1. 先更新缓存,后更新数据库
数据库更新失败,相当于没更新。
2. 先更新数据库,后更新缓存
缓存更新失败,只有等到缓存失效才能得到正确的值。
并发引发的一致性问题
两个线程同时更新同一条数据,出现数据库更新成功,缓存更新失败的问题之类的。
通常解决方案是加 分布式锁 ,线程在修改同一条数据之前先申请分布式锁,拿到锁的线程才允许更新数据库和缓存。
删除缓存可以保证一致性吗
1. 先删除缓存,后更新数据库
数据库更新失败,等于没更新
2. 先更新数据库,后删除缓存
缓存删除失败,只有等到缓存失效才能得到正确的值。
未完待续