查看“Redis 和 数据库的一致性的保证”的源代码
←
Redis 和 数据库的一致性的保证
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
首先,要确定的是:一般我们讨论的是最终一致性,而不是强一致性。 强一致性:需要保证缓存操作和数据库操作的原子性,但这样的实现就会影响系统的吞吐量。 所以我们只能尽量追求最终一致性。 === 延迟双删 === 延迟双删是指:先删除缓存,然后操作数据库,然后再延迟删除一次缓存 即使采用了延迟双删策略,也不能保证数据库和缓存最终一致,因为第二次的延迟删除操作也有可能失败。 === 最终的方案 === 现在流程的一种相对成熟的方案是: 引入阿里的Canal监听数据库的binlog,在数据发生变更的时候,监听binlog的Canal服务发起删除缓存的操作,如果操作失败,再存储到消息队列进行删除重试。 [[文件:缓存和数据库的一致性保证方案.png|无|缩略图|900x900像素]]
返回至
Redis 和 数据库的一致性的保证
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
Spring Boot 2 零基础入门
Spring Cloud
Spring Boot
设计模式之禅
VUE
Vuex
Maven
算法
技能树
Wireshark
IntelliJ IDEA
ElasticSearch
VirtualBox
软考
正则表达式
程序员精讲
软件设计师精讲
初级程序员 历年真题
C
SQL
Java
FFmpeg
Redis
Kafka
MySQL
Spring
Docker
JMeter
Apache
Linux
Windows
Git
ZooKeeper
设计模式
Python
MyBatis
软件
数学
PHP
IntelliJ IDEA
CS基础知识
网络
项目
未分类
MediaWiki
镜像
问题
健身
国债
英语
烹饪
常见术语
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息