Redis-缓存与数据库数据一致性

leard 发布于 2025-06-07 2 次阅读


先更新缓存,再更新数据库

由于网络原因,请求的先后顺序不能保证,可能会导致缓存和数据库数据不一致

先更新数据库,再更新缓存

由于网络原因,请求的先后顺序不能保证,可能会导致缓存和数据库数据不一致

先删缓存,再更新数据库,后续再查询数据库数据更新缓存

请求A删除缓存,请求B查询,数据库更新还未结束的话,会把旧数据重新推到缓存里,数据库更新结束后会出现缓存和数据库数据不一致

先更新数据库,再删缓存,后续再查询数据库数据更新缓存

先更新数据库,再删对应的缓存,可以保证最终的数据一致,但是有极低的概率,会由于并发问题导致数据不一致

双删策略,先删缓存,再更新数据库,数据库更新完成后,延迟一段时间再删除一边缓存

避免查询到旧数据

监听bin log,异步更新缓存

使用Canal监听bin log,通过消息队列异步修改缓存数据