|NO.Z.00049|——————————|BigDataEnd|——|Hadoop&Redis.V02|——|Redis.v02|数据不一致|

一、数据不一致
### --- 数据不一致

~~~     缓存和DB的数据不一致的根源 : 数据源不一样
### --- 如何解决

~~~     强一致性很难,追求最终一致性(时间)
~~~     互联网业务数据处理的特点
~~~     高吞吐量
~~~     低延迟
~~~     数据敏感性低于金融业
~~~     时序控制是否可行?
~~~     先更新数据库再更新缓存或者先更新缓存再更新数据库
~~~     本质上不是一个原子操作,所以时序控制不可行
~~~     高并发情况下会产生不一致
### --- 保证数据的最终一致性(延时双删)

~~~     先更新数据库同时删除缓存项(key),等读的时候再填充缓存
~~~     2秒后再删除一次缓存项(key)
~~~     设置缓存过期时间 Expired Time 比如 10秒 或1小时
~~~     将缓存删除失败记录到日志中,利用脚本提取失败记录再次删除(缓存失效期过长 7*24)
### --- 升级方案

~~~     通过数据库的binlog来异步淘汰key,利用工具(canal)将binlog日志采集发送到MQ中,
~~~     然后通过ACK机制确认处理删除缓存。

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(17)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示