IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis之缓存一致性 -> 正文阅读

[大数据]Redis之缓存一致性

当数据库中的数据更改之后,Redis中的缓存数据也需要更改?

怎么保证Redis中的数据和数据库中数据一致呢?

首先说下,现阶段只能保证数据库和redis的最终一致性,无法保证其强一致性,无论怎么做都会存在一段时间的数据不一致。

1、删除还是更新Redis

按常理说,我们在更新完数据库后,应该对Redis中的数据进行更新。但是现实中都是将对应的数据删除,这是为什么呢?

首先,删除一个数据比更新一个数据要轻松的多,删除只需要传入对应的key就可以了,而更新的话,不仅多传入key对应的值,还会涉及到复杂的内存操作。所以相较于更新来说,删除是一个轻量级操作。

因为如果一个数据在某段时间内更新了1000次,但是只被读取了1次,那么如果每次更新完数据之后都更新redis中的值的话,就会白白浪费资源。

所以不如直接删除对应的key,这样的话,等到读取的时候,让其再次读取数据库就好了。额外读取一次数据库的资源会小于多次的更新操作。

2、先删除缓存,后更新数据库

先删除缓存,然后更新数据库,可能会存在问题。

在删除缓存后,更新数据库成功之前,有其他线程读取数据,发现缓存为空,会读取数据库的旧值当作缓存的值。如果在此后的时间内,数据没有过期或者删除,数据会一直保持不一致。

这就引入了延迟双删

1、删除缓存
2、更新数据库
3、sleep,睡眠时间根据业务具体时间而定,约大于其他线程读数据 + 写缓存的时间
4、删除缓存

在这里插入图片描述

为什么还要延迟呢?

因为线程之间存在调度,有可能其他线程读取完数据后,然后一直没有得到执行机会,也就是没有写缓存。

那么如果在更新完数据库后,立即删除缓存的话,刚删除完缓存,然后其他线程得到执行机会了,又将就缓存写入了。。还是数据不一致!

所以要等待约大于线程读取数据+写缓存的时间,这个时间是需要统计的。

3、先更新数据库,后删除缓存

先更新数据库,然后删除缓存会出现什么问题呢?

删除缓存有可能会执行失败,如果执行失败并且不做处理的话,那么数据也会出现不一致!

所以引入消息队列来存放对应的删除命令,消息队列提供了重试和消息可靠性,可以保证删除缓存的执行。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-08 11:51:37  更:2021-10-08 11:52:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:58:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码