采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
缓存的脏读问题:也就是数据的不一致性。
可以考虑对更新操作的时候先删除缓存,然后再更新数据库。
缓存失效:可能会带来的缓存雪崩。
可以考虑给每一个缓存的数据加上一个失效标记,若过期则启动另外一个线程进行缓存数据的更新。
更新操作时删除缓存,涉及数据表少的时候可以那么做,但是如果一旦业务复杂起来,涉及数据表又多,那么代码中就会耦合大量缓存删除和更新操作,代码变得雍容,以后加新功能也要去操作缓存。所以脏读真的很难避免;
如果业务不复杂,涉及数据表还不算多,缓存更新方面可以使用redis的订阅机制,本地专门有个redis监听订阅的线程去异步更新缓存
缓存脏读就是数据库更新之后,缓存内的数据没有更新,导致脏读。这个不就是缓存失效了吗?还是缓存失效还有其他情况吗?
赞 缓存脏读某种程度上都是不可避免的 因此除非尽可能的避免脏读还要考虑业务的容忍性问题
登录后可查看更多问答,登录/注册
理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题
1.8k 11
1.3k 10
1.7k 9
1.2k 9
1.1k 8