极客-AI大模型微调训练营(视频+源码+PPT)
假设在高并发的场景中,同一个用户的同一条数据,有一个读数据请求c,还有另一个写数据请求d(一个更新操作),同时请求到业务系统。
在这个过程当中,有可能会出现请求d的新值,并没有被请求c写入缓存,同样会导致缓存和数据库的数据不一致的情况。
4.4 先写数据库,再删缓存在高并发的场景中,有一个读数据请求f,有一个写数据请求e。
在高并发的场景中,有一个读数据请求,有一个写数据请求,更新过程如下:
请求e先写数据库,由于网络原因卡顿了一下,没有来得及删除缓存。请求f查询缓存,发现缓存中有数据,直接返回该数据。请求e删除缓存。在这个过程中,只有请求f读了一次旧数据,后来旧数据被请求e及时删除了,看起来问题不大。
但如果是读数据请求先过来呢?
这种情况看起来也没问题呀?
答:对的。
但就怕出现下面这种情况,即缓存自己失效了。如下图所示:
这时,缓存和数据库的数据同样出现不一致的情况了。