1缓存更新的套路
常见的缓存更新套路就是旁路更新
操作如下:
读:先读缓存,读不到就取DB读,然后将读到的值写到缓存。
写:直接写DB,然后再写缓存,或者淘汰缓存
其中的读写并发会导致缓存不一致。
1.1双写更新问题
1.PNG
双写更新问题本质是多线程并发写造成。
1.2淘汰更新问题
2.PNG
淘汰更新问题本质上是淘汰缓存线程跟写缓存线程并发造成。
2解决方法
并发带来的问题我们解决的思路有如下几种:
*1.消息队列法。
将所有的写请求(淘汰缓存操作、写缓存操作)写到消息队列,单线程消费者消费这些请求写入到缓存中,把并发操作给串行化。
*2.分布式锁。
所有要进行写缓存、淘汰缓存的操作,都要先获取分布式锁,
