redis 数据库主从不一致问题解决方案_PolarisHuster的博客-CSDN博客_redis主从不一致


本站和网页 https://blog.csdn.net/john1337/article/details/98850192 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

redis 数据库主从不一致问题解决方案_PolarisHuster的博客-CSDN博客_redis主从不一致
redis 数据库主从不一致问题解决方案
PolarisHuster
于 2019-08-08 10:45:58 发布
12380
收藏
24
分类专栏:
mysql
redis
原文链接:https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651961330&idx=1&sn=4bdbada3b26d4fc2fc505f7a0f2ad7c4&chksm=bd2d022e8a5a8b38e59f0dfffba7ca407fe8711644b3794832572dd822c665205bb820cdddf7&scene=21#wechat_redirect
版权
mysql
同时被 2 个专栏收录
79 篇文章
0 订阅
订阅专栏
redis
15 篇文章
3 订阅
订阅专栏
在聊数据库与缓存一致性问题之前,先聊聊数据库主库与从库的一致性问题。
问:常见的数据库集群架构如何?
答:一主多从,主从同步,读写分离。
如上图:
(1)一个主库提供写服务
(2)多个从库提供读服务,可以增加从库提升读性能
(3)主从之间同步数据
画外音:任何方案不要忘了本心,加从库的本心,是提升读性能。
问:为什么会出现不一致?
答:主从同步有时延,这个时延期间读从库,可能读到不一致的数据。
如上图:
(1)服务发起了一个写请求
(2)服务又发起了一个读请求,此时同步未完成,读到一个不一致的脏数据
(3)数据库主从同步最后才完成
画外音:任何数据冗余,必将引发一致性问题。
问:如何避免这种主从延时导致的不一致?
答:常见的方法有这么几种。
方案一:忽略
任何脱离业务的架构设计都是耍流氓,绝大部分业务,例如:百度搜索,淘宝订单,QQ消息,58帖子都允许短时间不一致。
画外音:如果业务能接受,最推崇此法。
如果业务能够接受,别把系统架构搞得太复杂。
方案二:强制读主
如上图:
(1)使用一个高可用主库提供数据库服务
(2)读和写都落到主库上
(3)采用缓存来提升系统读性能
这是很常见的微服务架构,可以避免数据库主从一致性问题。
方案三:选择性读主
强制读主过于粗暴,毕竟只有少量写请求,很短时间,可能读取到脏数据。
有没有可能实现,只有这一段时间,可能读到从库脏数据的读请求读主,平时读从呢?
可以利用一个缓存记录必须读主的数据。
如上图,当写请求发生时:
(1)写主库
(2)将哪个库,哪个表,哪个主键三个信息拼装一个key设置到cache里,这条记录的超时时间,设置为“主从同步时延”
画外音:key的格式为“db:table:PK”,假设主从延时为1s,这个key的cache超时时间也为1s。
如上图,当读请求发生时:
这是要读哪个库,哪个表,哪个主键的数据呢,也将这三个信息拼装一个key,到cache里去查询,如果,
(1)cache里有这个key,说明1s内刚发生过写请求,数据库主从同步可能还没有完成,此时就应该去主库查询
(2)cache里没有这个key,说明最近没有发生过写请求,此时就可以去从库查询
以此,保证读到的一定不是不一致的脏数据。
总结
数据库主库和从库不一致,常见有这么几种优化方案:
(1)业务可以接受,系统不优化
(2)强制读主,高可用主库,用缓存提高读性能
(3)在cache里记录哪些记录发生过写请求,来路由读主还是读从
文字很短,不能解决所有问题,但希望能给大家一些启示。
PolarisHuster
关注
关注
12
点赞
24
收藏
评论
redis 数据库主从不一致问题解决方案
在聊数据库与缓存一致性问题之前,先聊聊数据库主库与从库的一致性问题。问:常见的数据库集群架构如何?答:一主多从,主从同步,读写分离。如上图:(1)一个主库提供写服务(2)多个从库提供读服务,可以增加从库提升读性能(3)主从之间同步数据画外音:任何方案不要忘了本心,加从库的本心,是提升读性能。问:为什么会出现不一致?答:主从同步有时延,这个时延期间...
复制链接
扫一扫
专栏目录
Redis缓存不一致问题如何解决
wuweuhai的博客
03-08
928
Redis缓存不一致问题如何解决
第一章 Redis之缓存可能遇到的问题
文章目录Redis缓存不一致问题如何解决前言一、Redis是什么?二、使用Redis带来的缓存不一致问题1.搭建高可用的分布式缓存总结
前言
在单机、并发量小的情况下,我们可以直接让请求直接访问数据库,单机MySQL查询最大能够支持每秒1万左右的查询请求,3千左右的新增更改的请求。但是在高并发场面下,并发量远远大于这些请求,为了保证系统的安全和高可用,一般会使用缓存作为中间缓存层,避免请求直接访问数据库。
一、Redis是什么?
Redis 主从数据不一致有哪些场景以及如何解决
hl_java的专栏
05-11
676
主从切换
生产环境的主从间的数据复制通常都是异步进行的,当进行failover时,可能会出现在数据没有完全同步到从库的情况下进行了主从切换
解决方案:
• 【择优选择】主从切换时优先选择同步进度更加靠前的节点,尽可能的减少数据丢失
• 【缩短主库持久化的周期性间隔】
主从延迟
主从延迟带来的现象主要有以下2种情况
主库有从库没有
主库没有从库却有
上述情况1大家都好理解,这里我重点介绍下情况2.主库没有从库却有的情况,举个例子,当一个key设置过期时间比如1分钟,expire 60 到redis中过期时
评论 8
您还未登录,请先
登录
后发表或查看评论
MySQL主从数据不一致,怎么办?
最新发布
Daniel的博客
11-15
245
先给大家说个身边的故事。小伙伴二狗最近面宇宙厂,前面被问MySQL索引、锁、主从复制原理时答的都很开心。当面试官问到:“你们遇到主从不一致的问题怎么解决呢?你有什么更好的方案吗?”二狗懵了。不就是读写时候走主,纯读走从吗。。难道还有什么别的办法?面试官:emmm……有。那我们换个问题,主从复制的方式有几种,你能讲讲吗?二狗:…… 问到盲点了面试官:答不上来没关系,您的情况我基本了解了。感谢您参加...
25 Redis的缓存中的数据和数据库中的不一致问题
海陆云的博客
12-11
2万+
25 Redis的缓存中的数据和数据库中的不一致问题前言一、缓存和数据库的数据不一致是如何发生的?二、解决Redis 和数据库数据不一致的方法总结
前言
Redis 缓存经常会遇到有 4 个方面:
缓存中的数据和数据库中的不一致;
缓存雪崩;
缓存击穿;
缓存穿透。
只要我们使用 Redis 缓存,就会面对缓存和数据库间的一致性保证问题。如果数据不一致,业务应用从缓存中读取的数据就不是最新数据。比如,把电商商品的库存信息缓存在 Redis 中,如果库存信息不对,那么业务层下单操作就可能出错。
一、缓
【Redis】redis主从不一致问题(redis缺点、缺陷)
m0_45406092的博客
05-24
2644
参考:
数据库主从不一致,怎么解?
Redis缓存不一致性问题详解
weixin_44251168的博客
12-31
1088
Redis缓存不一致性问题
MySQL主从复制什么原因会造成不一致,如何预防及解决?
不积跬步,无以至千里;不积小流,无以成江海。
06-21
845
导致主从不一致的原因主要有:
1、人为原因导致从库与主库数据不一致(从库写入)。
2、主从复制过程中,主库异常宕机。
3、设置了ignore/do/rewrite等replication等规则。
4、binlog非row格式。
5、异步复制本身不保证,半同步存在提交读的问题,增强半同步起来比较完美。 但对于异常重启(Replication Crash Safe),从库写数据(GTID)的防范,还需要策略来保证。
6、从库中断很久,binlog应用不连续,监控并
数据库主从不一致,怎么解?
架构师之路
07-06
3270
在聊数据库与缓存一致性问题之前,先聊聊数据库主库与从库的一致性问题。 问:常见的数据库集群架构如何?答:一主多从,主从同步,读写分离。如上图:(1)一个主库提供写服务(2...
如何解决数据库主从数据不一致的问题
J.K.Yang的博客
01-23
3850
数据库集群架构
目前流行的数据库集群架构包括以下三点:
一主多从:高可用方案,主库挂掉,从库会变成主库;
读写分离:减少单机数据库压力,主库提供写服务,从库提供读服务;
主从同步:为了保证一致性,从库会实时与主库同步数据,但是会有延迟。
可能会产生的问题
同步延迟可能会导致主从数据不一致。例如:主库正在进行写操作,从库同时也正在读操作,但此时从库还未同步到主库的最新数据,导致从库读到脏数据。
如何解决
忽略:在业务不保证数据强一致性的情况下,可以选择忽略(技术永远是为业务提供服务的!);
强制性读写主库:
主从同步不一致(解决方法)
it琦 的博客
12-27
2831
解决主从同步不一致
redis主从数据不一致如何解决
qq_28022397的博客
05-30
2000
redis 数据库主从不一致问题解决方案
在聊数据库与缓存一致性问题之前,先聊聊数据库主库与从库的一致性问题。
问:常见的数据库集群架构如何?
答:一主多从,主从同步,读写分离。
如上图:
(1)一个主库提供写服务
(2)多个从库提供读服务,可以增加从库提升读性能
(3)主从之间同步数据
画外音:任何方案不要忘了本心,加从库的本心,是提升读性能。
问:为什么会出现不一致?
答:主从同步有时延,这个时延期间读从库,可能读到不一致的数据。
如上图:
(1...
面试题:redis主从数据库不一致如何解决?
qq_29860591的博客
01-13
1374
主从数据库不一致如何解决?
场景描述,对于主从库,读写分离,如果主从库更新同步有时差,就会导致主从库数据的不一致。
1、忽略这个数据不一致,在数据一致性要求不高的业务下,未必需要时时一致性。
2、强制读主库,使用一个高可用的主库,数据库读写都在主库,添加一个缓存,提升数据读取的性能。
3、选择性读主库,添加一个缓存,用来记录必须读主库的数据,将哪个库,哪个表,哪个主键,作为缓存的key,...
如何解决Redis 和MySQL的数据不一致
Jack章臣的博客
04-21
1159
1. MySQL持久化数据,Redis只读数据
redis在启动之后,从数据库加载数据。
读请求:
不要求强一致性的读请求,走redis,要求强一致性的直接从mysql读取。
写请求:
数据首先都写到数据库,之后更新redis(先写redis再写mysql,如果写入失败事务回滚会造成redis中存在脏数据)。
2.MySQL和Redis处理不同的请求数据类型
MySQL处理实时...
解决数据库主从库数据不一致问题方法解析
我思故我在
02-22
2806
原因解析:主从库之间需要通过日志的方式进行数据同步,如果此时用户的读请求交给从库去处理,一旦数据同步操作未完成,则用户此时读到的数据是旧数据,会导致用户获取数据不可靠,影响业务的正常运行和用户体验。
解决办法:
方法1:设置数据库主从半同步(全同步)
三种同步复制方式比较
全同步
半同步
异步
主库在执行完客户端提交的事务后 ,所有从库已经接收并处理完成
主库在执行客户端提交的事务后,至少等到一个从库接收完成(而不是处理完成)后再将结果返回给客户端
主库在执行完客户端..
redis的Sentinel和Cluster的引入方式和常见切换报错
wanglinrui的博客
08-29
331
redis的Sentinel和Cluster的引入方式和常见切换报错
mysql主从_揭秘MySQL主从数据不一致
weixin_39907289的博客
12-05
69
前言:目前MySQL数据库最常用的是主从架构,大多数高可用架构也是通过主从架构演变而来。但是主从架构运行时间长久后容易出现数据不一致的情况,比如因从库可写造成的误操作或者复制bug等,本篇文章将会详细探究出现主从不一致及如何解决这种问题。1.造成主从不一致的原因造成主从不一致的可能原因有很多,下面简单列举几条:主库binlog格式为Statement,同步到从库执行后可能造成主从不一致...
redis和数据库的一致性问题的解决方案
w3x3g的博客
09-29
869
redis和数据库的一致性问题的解决方案
redis与数据库数据不一致解决方案
qq_43467178的博客
07-09
1791
redis与数据库数据不一致解决方案
目前项目中,缓存应用广泛,一些故障或者并发问题可能会导致缓存信息和数据库不一致,从而导致脏数据的产生,目前我所了解的两种方案:延迟双删和异步更新缓存都能有效保证数据的一致性。
Redis与数据库一致性问题分析
缓存(Redis)和数据库间的数据一致性–笔记
异步更新缓存:通过使用mq来保证缓存更新的顺序进行,但是这样复杂性就提升了,可用性也降低了。
延迟双删:并发操作多,集群数量大的情况,这个方案不好,且会占用很多时间,也很难保持数据一致
因此我思考是不是从延时双删上做
MySQL主从不一致情形与解决方法
热门推荐
君子敏于行而讷于言
07-14
3万+
一、MySQL主从不同步情况
1.1 网络的延迟
由于mysql主从复制是基于binlog的一种异步复制
通过网络传送binlog文件,理所当然网络延迟是主从不同步的绝大多数的原因,特别是跨机房的数据同步出现这种几率非常的大,所以做读写分离,注意从业务层进行前期设计。
1.2 主从两台机器的负载不一致
由于mysql主从复制是主数据库上面启动1个io线程,而从上面启动1个sq...
Redis和数据库数据不一致的问题
啊勇的博客
12-06
2504
针对读多写少的高并发场景,我们可以使用缓存来提升查询速度。
• 如果数据在Redis存在,应用就可以直接从Redis拿到数据,不用访问数据库。
• 如果Redis里面没有,先到数据库查询,然后写入到Redis,再返回给应用。
问题一:
一旦被缓存的数据发生变化的时候,我们既要操作数据库的数据,也要操作Redis的数据,所以问题来了。现在我们有两种选择:
• 先操作Redis的数据再操作数据库的数据
• 先操作数据库的数据再操作Redis的数据
只要有一方失败就会导致数据不一致
这种情况需要更具
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:编程工作室
设计师:CSDN官方博客
返回首页
PolarisHuster
CSDN认证博客专家
CSDN认证企业博客
码龄14年
Java领域优质创作者
537
原创
3645
周排名
803
总排名
329万+
访问
等级
2万+
积分
2万+
粉丝
765
获赞
478
评论
2179
收藏
私信
关注
热门文章
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin'
105744
Ubuntu20.04代理设置
75429
fastjson设置指定日期属性的格式化
62381
The web application [] appears to have started a thread named [Thread-
53413
write javaBean error, fastjson version 1.2.47, class
44696
分类专栏
thingsboard
14篇
kubernetes
11篇
linux
57篇
nacos
6篇
测试工具
6篇
大数据
26篇
cassandra
9篇
tdengine
2篇
arthas
2篇
kong
1篇
反应式编程
3篇
fastjson
7篇
程序猿的自我修养
4篇
spring
104篇
java
139篇
前端
79篇
其他
20篇
dubbo
14篇
poi
11篇
tomcat
11篇
nginx
12篇
maven
20篇
fiddler
2篇
fastjson
14篇
网络基础
23篇
mysql
79篇
非技术类
13篇
mybatis
10篇
activiti
6篇
搜索
23篇
开发工具
24篇
微信
2篇
网络安全
4篇
数据库
9篇
docker
25篇
分布式系统
7篇
redis
15篇
slf4j
2篇
MQ
25篇
软件基础
3篇
git
4篇
开源软件
1篇
elk
24篇
oss
1篇
多媒体
1篇
IT职业技能
3篇
spring cloud
18篇
微服务
6篇
架构
7篇
运维相关
24篇
canal
3篇
算法
8篇
go
1篇
mongodb
1篇
进阶
5篇
zookeeper
1篇
最新评论
echarts tooltip trigger: 'axis'没有作用
小猿L:
请问是怎么解决的呢,xAxis的data跟yAxis的data一一对应啊,数组类型,怎么赋值呢
微信公众号关注回调
新秀Code:
为啥我关注后并没有回调数据唉
Mockito.when抛出NullPointerException
陈淀薄发:
可以解决
thingsboard-gateway从thingsboard获取拓展配置源码分析
qq_38212332:
官网的网管都改成python,据说是为了能兼容到嵌入式
nacos2.x 支持postgresql与mysql
shineJo:
我也是这个问题,老哥解决没?
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
thingsboard设备状态更新可能导致的不一致性问腿
Protobuf3简单使用
kubesphere无法更新项目
2022年29篇
2021年101篇
2020年127篇
2019年198篇
2018年118篇
2017年212篇
2016年77篇
2015年41篇
2014年2篇
目录
目录
分类专栏
thingsboard
14篇
kubernetes
11篇
linux
57篇
nacos
6篇
测试工具
6篇
大数据
26篇
cassandra
9篇
tdengine
2篇
arthas
2篇
kong
1篇
反应式编程
3篇
fastjson
7篇
程序猿的自我修养
4篇
spring
104篇
java
139篇
前端
79篇
其他
20篇
dubbo
14篇
poi
11篇
tomcat
11篇
nginx
12篇
maven
20篇
fiddler
2篇
fastjson
14篇
网络基础
23篇
mysql
79篇
非技术类
13篇
mybatis
10篇
activiti
6篇
搜索
23篇
开发工具
24篇
微信
2篇
网络安全
4篇
数据库
9篇
docker
25篇
分布式系统
7篇
redis
15篇
slf4j
2篇
MQ
25篇
软件基础
3篇
git
4篇
开源软件
1篇
elk
24篇
oss
1篇
多媒体
1篇
IT职业技能
3篇
spring cloud
18篇
微服务
6篇
架构
7篇
运维相关
24篇
canal
3篇
算法
8篇
go
1篇
mongodb
1篇
进阶
5篇
zookeeper
1篇
目录
评论 8
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值