千家信息网

先进行缓存操作还是数据库操作

发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,本篇内容介绍了"先进行缓存操作还是数据库操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!先更数据库
千家信息网最后更新 2025年11月13日先进行缓存操作还是数据库操作

本篇内容介绍了"先进行缓存操作还是数据库操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

先更数据库,再删除缓存

问题

缓存删除后,尚未更新数据库,并发读请求,从数据库读到了旧值,并且更新到缓存导致后续请求都是旧值。

时间
从上
到下,
越来
越晚

更新操作

删除redis

读取操作

缓存没有数据

从数据库读到旧值

回写redis

更新mysql

返回

返回

解决方式

经典的延迟双删。就是:先更新数据线,再删缓存,之后延迟一段时间再删缓存。

时间
从上
到下,
越来
越晚

更新操作

删除redis

读取操作

缓存没有数据

从数据库读到旧值

回写redis

更新mysql

返回

延迟一段时间

删除redis

读取操作

缓存没有数据

从数据库读到新值

回写redis

返回

延迟一段时间,挺重要不能拍脑袋,需要考虑2个因素

考虑查询接口响应时间

时间
从上
到下,
越来
越晚

更新操作

删除redis

读取操作

缓存没有数据

从数据库读到旧值

更新mysql

延迟一段时间,
小于从数据读取数据的时间,
延迟策略失效

删除redis

回写redis

返回

考虑mysql主从同步事件

自建mysql集群,配置不当,会出现mysql主从同步延迟大的情况。

时间
从上
到下,
越来
越晚

更新操作

删除redis

读取操作

缓存没有数据

从数据库读到旧值

回写redis

更新mysql主库

返回

延迟一段时间,
小于mysql主从同步时间
延迟策略失效

删除redis

读取操作

缓存没有数据

从库读到旧值

mysql主从同步完成

回写redis

返回

延迟时间必须大于查询接口的响应时间。

并且要大于mysql主从同步的时间,防止主从同步延迟造成,读到旧值的情况

--- 温安适 20210225

先删缓存,再更新数据库

注意:建议查询接口要从主库进行读取

时间
从上
到下,
越来
越晚

更新操作

更新mysql主库

读取操作

缓存有数据,读到旧值

删除redis

返回

读取操作

缓存没有数据

主库读到新值

回写redis

返回

存在的问题:

等待缓存删除完成,期间数据库会有不一致数据短暂存在,但是一般可以不处理。

总结:

策略

潜在问题

解决方式

注意事项

先删缓存,
再更数据库

并发条件下
数据库更新还没有完成
有并发读请求,从数据库读到了旧值

延迟双删

延迟时间必须
大于查询接口的响应时间。
并且大于mysql主从同步的时间

先更数据库,
再删缓存

并发条件下
缓存没有删除完成,并发读
从缓存读到了旧值

不处理,
最终会一致

查询接口建议读主库,存在不一致,
但是一般不需处理

"先进行缓存操作还是数据库操作"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 缓存 时间 数据库 更新 延迟 主从 同步 接口 越来越 越来 查询 一致 情况 策略 问题 处理 还是 内容 建议 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 程序员懂网络安全吗 网络安全法第27条第59条 数据库查询结论心得 为什么连接上网络却说不在服务器 电脑变成服务器怎么用 网络安全评估报告 水果图片python数据库 幼儿园网络安全演练视频 计算机网络技术的专业基础课 重庆艺楚软件开发怎么样 最大的最小的数据库 网络技术广播的另一种说法 添加smb文件夹 服务器 怎么让数据库表元素自动递增 收废品软件开发是哪一年成立 服务器租赁价格发展史 沈阳航空航天大学网络技术专业 数据库多个表字段关联 数据库管理系统的主要作用多选 钟祥市软件开发项目管理 购物网站数据库概念结构设计 ibm刀片服务器管理IP 松原软件开发 数据库中出生日期的字符类型 手机端股票自动交易软件开发 什么是网络安全漏扫 怎么让数据库表元素自动递增 益阳市软件开发合同律师哪里找 创建数据库提示设备激活错误 执法资格题库网络安全
0