如何解决缓存的脏读和失效的问题?
来源:5-21 【勤于思考,夯实学习成果】阶段思考题

BoxboxMan
2019-05-27
缓存的脏读问题:也就是数据的不一致性。
可以考虑对更新操作的时候先删除缓存,然后再更新数据库。
缓存失效:可能会带来的缓存雪崩。
可以考虑给每一个缓存的数据加上一个失效标记,若过期则启动另外一个线程进行缓存数据的更新。
写回答
3回答
-
慕圣8322165
2019-07-07
更新操作时删除缓存,涉及数据表少的时候可以那么做,但是如果一旦业务复杂起来,涉及数据表又多,那么代码中就会耦合大量缓存删除和更新操作,代码变得雍容,以后加新功能也要去操作缓存。所以脏读真的很难避免;
如果业务不复杂,涉及数据表还不算多,缓存更新方面可以使用redis的订阅机制,本地专门有个redis监听订阅的线程去异步更新缓存
80 -
慕九州5428536
2019-06-29
缓存脏读就是数据库更新之后,缓存内的数据没有更新,导致脏读。这个不就是缓存失效了吗?还是缓存失效还有其他情况吗?
10 -
龙虾三少
2019-05-27
赞 缓存脏读某种程度上都是不可避免的 因此除非尽可能的避免脏读还要考虑业务的容忍性问题
10
相似问题