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

redis--Mysql和redis数据一致性问题(延时双删)

1.背景

首先介绍两种情况

1)先写Mysql再写Redis

此时我们可以看到mysql中的数据为11,而redis中的数据为10,产生了数据不一致的情况

2)先写Redis再写Mysql

此时我们可以看到redis中更新为11,而Mysql中的数据是10,也是会产生数据不一致的情况

2.延时双删

首先介绍用一条理论CAP理论

        CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则指的是,这三个要素最多只能同时实现两点,不可能三者兼顾。

延时双删图解

总结:

  • 当更新MySQL时,首先删除Redis中的相关缓存项。然后,在更新MySQL后等待一段时间(根据业务逻辑的耗时来确定)再次删除Redis中的同一缓存项。
  • 这种方法可以减少在高并发场景下由于缓存覆盖导致的数据不一致问题。但是,它并不能完全解决所有的一致性问题。

特点:

        1.延时双删,有等待环节,如果系统要求低延时,这种场景就不合适了。

        2.延时双删,不适合“秒杀”这种频繁修改数据和要求数据强一致的场景。

        3.延时双删,延时时间是一个预估值,不能确保 mysql 和 redis 数据在这个时间段内都实时同步或持久化成功了


http://www.kler.cn/a/354213.html

相关文章:

  • 工业摄像机基于电荷耦合器件的相机
  • 32. 线程、进程与协程
  • Opencv之对图片的处理和运算
  • Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
  • pyparsing如何实现嵌套捕获
  • Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
  • OpenAI的新功能Canvas,效果还不错
  • Failed to connect to github.com port 443
  • 安全风险评估(Security Risk Assessment, SRA)
  • sql的使用
  • 蛋白质残基的距离计算以及径向基函数变换中的维度变化
  • 第21~22周Java主流框架入门-Spring 2.SpringAOP面向切面编程
  • 潜水定位通信系统的功能和使用方法_鼎跃安全
  • SpringBoot+Vue+Uniapp智能社区服务小程序系统(源码+lw+部署文档+讲解等)
  • 前缀和--一维和二维模板
  • 【MySQL】索引的机制、使用
  • 机器学习—特性缩放
  • 执行 start.sh 脚本时打开一个单独的运行窗口
  • pdf内容三张以上转图片,使用spire.pdf.free
  • 【选择C++游戏开发技术】
  • 自动驾驶TPM技术杂谈 ———— 惯性导航定位技术
  • 速盾:高防 cdn 提供 cc 防护?
  • 双回路防静电监控仪安全保护生产全流程
  • Linux基础项目开发day2:量产工具——输入系统
  • 【存储设备专栏 2.6 -- linux 启动盘制作详细介绍】
  • Vert.x,Web - Restful API