搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
Gausst松鼠会
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
4核8G服务器选阿里云还是腾讯云?价格性能对比
2
深入解析Python并发编程的多线程和异步编程
3
vscode 远程开发_vscode远程开发
4
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题_缓存30分钟
5
《C++新经典Linux C++通信架构实战》第3章 Nginx开发初步_c++ 新经典 linux通信架构实战 pdf 百度网盘
6
数据库连接池HikariCP
7
10分钟就能搭建远程开发环境?你早点怎么不出现(#`n´)!_远程硬件开发环境
8
anaconda安装环境出现safetyerror_safetyerror: the package for mkl located at d:\ana
9
Visual Studio 2005 sp1 安装时文件检验失败的解决方法
10
Linux:运行存在的可执行文件提示 No such file or directory_linux no such file or directory
当前位置:
article
> 正文
Redis和Mysql如何保证数据一致性
作者:Gausst松鼠会 | 2024-02-27 10:36:33
赞
踩
Redis和Mysql如何保证数据一致性
一般情况下,Redis用来实现应用和数据库之间读操作的缓存层,主要目的是减少数据
库IO,还可以提升数据的IO性能。
这是它的整体架构。
当应用程序需要去读取某个数据的时候,首先会先尝试去Redis里面加载,如果命中就
直接返回。如果没有命中,就从数据库查询,查询到数据后再把这个数据缓存到Redis
里面。
(如图)在这样一个架构中,会出现一个问题,就是一份数据,同时保存在数据库和
Redis里面,当数据发生变化的时候,需要同时更新Redis和Mysql,由于更新是有先
后顺序的,并且它不像Mysql中的多表事务操作,可以满足ACID特性。所以就会出
现数据一致性问题。
在这种情况下,能够选择的方法只有几种。
1.先更新数据库,再更新缓存
2.先删除缓存,再更新数据库
如果先更新数据库,再更新缓存,如果缓存更新失败,就会导致数据库和Redis中的数
据不一致。
如果是先删除缓存,再更新数据库,理想情况是应用下次访问Redis的时候,发现Redis
里面的数据是空的,就从数据库加载保存到Redis里面,那么数据是一致的。但是在极
端情况下,由于删除Redis和更新数据库这两个操作并不是原子的,所以这个过程如果
有其他线程来访问,还是会存在数据不一致问题。
所以,如果需要在极端情况下仍然保证Redis和Mysql的数据一致性,就只能采用最
终一致性方案。
(如图)比如基于RocketMQ的可靠性消息通信,来实现最终一致性。
(如图)还可以直接通过Canal组件,监控Mysql中binlog的日志,把更新后的数据
同步到Redis里面。
因为这里是基于最终一致性来实现的,如果业务场景不能接受数据的短期不一致性,那
就不能使用这个方案来做。
以上就是我对这个问题的理解。
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/152154
推荐阅读
article
Java
小区
车位
智能
管理系统
(毕设源码+mysql+lw)_
小区
车位
检测
管理系统
毕业设计
...
首先,该系统可以实现
车位
的智能化管理,通过传感器等设备实时监控
车位
的使用情况,为车主提供准确的
车位
信息,避免车辆乱停乱放...
赞
踩
article
毕设项目:小区
停车
场
管理系统
(JSP+
java
+springmvc+
mysql
+MyBatis)_小...
因此,开发一款高效、便捷、安全的小区
停车
场
管理系统
成为了物业公司迫切需要解决的问题。系统可以实现车位信息的录入、查询、修...
赞
踩
article
基于
SSM+
MySQL
+
Bootstrap
的
停车场
管理系统
_
停车场
管理系统
er
图...
自从进入21 世纪以后,汽车产业迅速发展,伴随着人们生活程度的日益进步的人口的迅速增加,汽车的数量也如雨后春笋般在城市里...
赞
踩
article
SqlSugar
操作
MySQL
数据库
_
sqlsugar
mysql...
在C#中,我们可以使用DataTable类来表示内存中的数据表格。DataTable类提供了各种方法和属性来操作数据表格...
赞
踩
article
C#如何使用
SqlSugar
操作
My
SQL
/
SQL
Server
数据库
_c#
mysql
sqlsu...
SqlSugar
连接
My
SQL
数据库
_c#
mysql
sqlsugar
c#
mysql
sqlsugar
...
赞
踩
article
ASP.NET WEB API通过SugarSql连接MySQL
数据库
_
asp
.net5.0 sql...
1、创建项目,安装SqlSugarCore、Pomelo.EntityFrameworkCore.MySql插件。注意:...
赞
踩
article
flask
读取
数据
库(
mysql
)并展示表格(讲解获取表头
的
方法)【附上
flask
好看
点
的
hello...
简述为了网页
的
好看
,最好还是用bootstrap文章目录简述
好看
点
的
helloworld
链接
数据库
结合在html上和fl...
赞
踩
article
efcore mysql
autofac
_一步一步创建
ASP
.
NET
MVC5程序[Reposito...
前言大家好,我是Rector从今天开始,Rector将为大家推出一个关于创建
ASP
.
NET
MVC5程序[Reposit...
赞
踩
article
asp
.
net
mysql
读写分离_[ASP.
net
教程]
SqlSugar
ORM
已经支持读写分离...
[ASP.
net
教程]
SqlSugar
ORM
已经支持读写分离0 2016-11-26 23:00:12目前只有MYS...
赞
踩
article
flask
mysql
Echart 实现
数据
库
数据
图表展示_
python
flask
echart
...
代码的目的就是查到
数据
库
所有的
数据
然后转发给chart.html,这个chart.html就是咋们刚刚复制进来的那个ht...
赞
踩
article
asp.
net
mysql
性能
_轻量级、高
性能
SQL
ORM 之
SqlSugar
- ASP...
SqlSugar
是一款轻量级的MS
SQL
ORM ,除了具有媲美ADO的
性能
外还具有和EF相似简单易用的语法。一、介简优...
赞
踩
article
python
+
flask
+
mysql
用网页展示
数据库
内容
_
python
flask
mysql
网...
利用
flask
框架,把
数据库
的
内容
用网页展示出来,并可以用关键词进行搜索操作。一、项目目录
数据库
的
内容
二、Flask.p...
赞
踩
article
Python
学生
管理
系统
+
mysql
+Flask_
python
+
mysql
学生
学籍
管理
报告...
Python
学生
管理
系统
+
mysql
+Flask。利用web实现对
学生
信息进行简单地增删查改操作。_
python
+my...
赞
踩
article
asp.
net
mvc
mysql
开源
项目
_【开源
项目
SugarSite
】ASP.NET MVC+...
SugarSite
一个前端支持移动端的企业网站,目前只支持了简单功能,后续还会加上论坛等。源码GIT地址:技术介绍Lay...
赞
踩
article
C#
连接
MySQL
(使用
Petapoco
轻量级ORM框架 )_
c#
mysql
orm
...
@关于
Petapoco
的基础
连接
Petapoco
连接
准备首先我们需要准备在VS nuget 控制台下载
Petapoco
,...
赞
踩
article
mysql
sqlsugar
_.
net
core
+
mysql
Sugar(最为简单
的
增删改查)...
首先建立.
net
Core API - empty 这个就不说了然后创建新
的
Controller记得添加路由[Route...
赞
踩
article
MVVM
+三层架构+
SqlSugar
(
code
First
)_
mvvm
orm
mysql
...
MVVM
+三层架构+ORM 心得分享_
mvvm
orm
mysql
mvvm
orm
mysql
...
赞
踩
article
dapper
mysql
拓展_
GitHub
-
itlizhi
/orm-
dapper
-extens...
orm-
dapper
-
extensions
基于
Dapper
的一些扩展方法,支持
sqlserver
和
mysql
扩展 增删改...
赞
踩
article
pg
mysql
联表
查询
_
postgresql
多表
查询
语句
优化...
今天接到客户反馈,网站这两天经常出现无法访问的情况,查看日志发现是一个页面里的sql
查询
太慢,需要30多秒导致超时并且因...
赞
踩
article
MySQL
&
PostgresQL
慢
查询
日志
_
pg
慢
查询
日志
单独存...
title:
MySQL
&
PostgresQL
慢
查询
日志
author: KawYangtop: falsecover: ...
赞
踩
相关标签
java
课程设计
mysql
大数据
数据库
c#
asp.net
前端
flask
html
css
efcore mysql autofac
asp.net mysql 读写分离
python
asp.net mysql 性能