当前位置: 首页 > news >正文

缓存与数据库双写一致性问题解决方案

其实如果使用缓存,就会出现缓存和数据库的不一致问题,关键在于我们可以接受不一致的时间是多少,根据不同的需求采取不同的实现方案。

第一种:先更新数据库后更新缓存

做法简单,但是并发写情况下,会出现数据的不一致问题,具体不一致的时间长短取决于过期时间的长短

第二种:先删除缓存后更新数据库

并发读写情况下,如果刚删除了缓存,还未执行DB操作的情况下,读线程已经读取旧数据,更新缓存的值,那么数据库还是会出现不一致的问题,时间同样取决于过期时间长短

第三种:先更新数据库后删除缓存

存在问题1、更新数据库和删除缓存直接,这段时间读到的数据是不一致的。2、如果删除缓存失败,那么也会存在一段时间的不一致,时间同样取决于过期时间的长短

第四种:基于第二种,先删除缓存,再更新数据库,为防止第二种情况的发送,使用保底策略,延迟一段时间,再删除缓存

存在问题:1.如果删除缓存失败,那么也会存在一段时间的不一致,时间同样取决于过期时间的长短

2.多次删除缓存,给redis带来一定的压力

第五种:基于第三种,先更新数据库,再使用本地缓存或者消息队列,异步删除缓存。

http://www.lryc.cn/news/185350.html

相关文章:

  • Java中的transient关键字是什么意思?
  • 内存溢出和内存泄漏
  • Java数组:没错,不装了我就是书架。
  • 轻量级接口自动化测试框架
  • .some方法、vh、多列布局、DNS域名解析过程、空页面文字内容渲染
  • Eclipse iceoryx™ - 真正的零拷贝进程间通信
  • 【C++】面向对象编程(二)面向对象的编程思维:virtual虚拟调用、继承、protected成员、派生类与基类
  • 【古谷彻】算法模板(更新ing···)
  • Day-06 基于 Docker 安装 Nginx 镜像
  • k8s集群-7 service
  • JS进阶-防抖和节流
  • 踩坑日记 uniapp 底部 tabber遮挡住购物车结算
  • 【MySQL】表的约束(一)
  • Excel宏管理库存清单
  • C语言练习百题之排序算法
  • 通过ElementUi在Vue搭建的项目中实现CRUD
  • 【CSS如何进行圣杯布局】
  • flex 实现的圣杯布局
  • 数字人直播软件排名推荐,铭顺科技数字人品牌抢占“日不落”流量新技能
  • 【AI视野·今日Robot 机器人论文速览 第四十五期】Mon, 2 Oct 2023
  • 【计算机网络】网络编程接口 Socket API 解读(9)
  • 用户端App自动化测试
  • [洛谷]P2697 宝石串(经典好题!)
  • 毫米波汽车雷达测试应用指南
  • 抖音账号矩阵系统开发源码----技术研发
  • C++ 33.学习C++的意义-狄泰软件学院
  • [C++基础]-多态
  • 【Kubernetes】当K8s出现问题时,我们可以从哪些方面排查出
  • SentenceTransformer 之论文解读
  • AI发展历史