纠纷奇闻社交美文家庭
投稿投诉
家庭城市
爱好生活
创业男女
能力餐饮
美文职业
心理周易
母婴奇趣
两性技能
社交传统
新闻范文
工作个人
思考社会
作文职场
家居中考
兴趣安全
解密魅力
奇闻笑话
写作笔记
阅读企业
饮食时事
纠纷案例
初中历史
说说童话
乐趣治疗

Mongodb和数据库的数据一致性,这样操作更完美!

9月9日 顾昀汐投稿
  前言
  其实大多数项目用到redis多一点,这篇文章我们主要来谈一下:如何保证Mongodb和数据库双写的数据一致性?1。MongoDB概念及基本用法1。1什么是MongoDB?
  MongoDB是一个开源的、可扩展的、跨平台的、面向文档的非关系型数据库(NOSQL)。它底层用的C语言编写,主要是提供可扩展的高性能数据存储解决方案。
  MongoDB主要用于存储大容量的数据。其文档存储格式有点类似json,例如文件、图片、音频、视频等。
  MongoDB也通常用来存储大数据,例如GPS数据等。1。2MongoDB的基本使用
  下面我们来看一下MongoDB数据库的基本使用。
  MongoDB数据库,客户端写入数据流程图如下:
  可以看出,当客户端请求写入数据时,数据插入到MongoDB后得到数据mongoid,再写入数据到数据库并保存mongoid,这样就存在了一个数据关联关系。
  MongoDB数据库,客户端请求数据流程图如下:
  当客户端请求该数据时先去数据库拿到MongoDB中的数据id,再去MongoDB中取出数据即可。
  如此就保证了核心属性存储在数据库,同时也解决了客户端的大数据或大文件的存储。2。怎样保证MongoDB和数据库双写一致性?
  当前最常用的两种解决方案如下。2。1先写数据库,再写MongoDB
  方案一:先写数据库,再写MongoDB。
  图例如下:
  这种方案,需要注意得的是写入数据库要记录mongoid,此时因还没有写入数据到MongoDB是拿不到其真实id的,因此需在写入数据到数据库时自定义生产mongoid,当写入数据MongoDB中时用已经生成的id。
  因此这种方案主要用于对数据完整性要求不高的场景下,也就是非核心数据可有可无,丢失了也无关紧要。
  举个例子说明一下这种方案的弊端:
  当数据库刚保存成功数据,网络异常或写入MongoDB逻辑异常,此时就会导致非核心数据保存失败而丢失。因此此方案在实际项目中基本不使用。2。2先写MongoDB,再写数据库
  方案一:先写MongoDB,再写数据库。
  图例如下:
  同样的道理:如果MongoDB写入数据成功了,此时网络中断或逻辑异常了,导致写入数据库失败又怎么解决。
  上述问题一样因MongoDB写入成功后不会回滚,因此一样会导致双写数据不一致的情况。
  这里我们再来返回去看一下上面分析的MongoDB的基本操作呢,实际上当客户端获取数据时,先获取数据库的mongoid,再通过mongoid查询MongoDB中数据,此种情况去MongDB查询数据时查不到的。
  也就是说,这种情况下MongoDB钟保存的是垃圾数据。因此对实际业务没有任何影响的。
  该方案弊端:
  MongDB中垃圾数据过多会占用存储,要怎么来清理这些数据?
  客户端新增数据不影响业务,要是客户端修改数据呢?3。修改操作又怎么保证MongoDB和数据库数据一致?
  试想如果我们采用客户端新增先写MongoDB后写数据库方案来做客户端修改数据,当MongoDB修改成功,数据库修改失败时,这样修改操作也不能保证双鞋一致性了。
  客户端修改数据时,我们可以这样操作:
  客户端提交修改数据请求后,我们同样先去MongoBD新增一条数据,拿到新的mongoid,再去修改数据库并更新新的mongoid。
  示例如下:
  分析一下:客户端发起修改请求时,如果MogoDB新增数据成功了,再去修改数据库数据失败了,此时因数据库保存的是老的mongoid,客户端依然可以拿到数据。
  该方案弊端:
  MongDB中垃圾数据过多会占用存储,要怎么来清理这些数据?
  为了解决修改MongoDB时可能产生的垃圾数据,我们可以这样操作:
  同样客户端请求修改数据时,先在MongoDB新增一套数据,保留老数据并拿到新的mongoid,再去更新数据库数据,更新成功后再用村塾再数据库的老mongoid删除MongoDB中旧数据。
  具体流程图如下:
  注意了,问题又来了,加入当修改数据库成功后,去删除MongoDB老数据时失败了,那这样MongDB中的垃圾数据是不是就一直保留了?
  因此这里就需要【重试机制】来删除MongoDB老数据了。
  常见的重试机制:定时任务、mq。
  这样客户端请求修改数据时产生的垃圾数据清理问题解决了,那么新增呢?4。新增的垃圾数据又怎么清理?
  又回到上面新增的方案二中遗留的垃圾数据清理问题了。4。1定时任务删除
  同样的这里可以采用:定时任务
  简单的来说就是用MongoDB中的mongoid扫描数据库中该mongoid,如果数据库中不存在则就删除MongoDB中该条数据。
  问题又来了,如果MongoDB中数据量很大呢?通常的做法:缩小扫描数据的范围。
  例如:获取MongoDB数据时,根据mongoid的一个范围查询,再用mongoid去数据库查询数据并删除MongoDB垃圾数据。
  但如果缩小扫描数据的范围后,数据量仍然很大,定时任务还是处理不过来呢?通常可以:多线程定时任务处理。4。2随机删除
  可以借鉴redis的随机清除缓存国企数据策略,采用随机删除方案。
  同样用定时任务,每隔500ms随机查询MongoDB中10条数据进行批量处理。
投诉 评论 转载

巨贪许超凡贪污银行资金超过40亿,澳门豪赌4小时输掉60002001年是跨世纪后的第一个年头,也是中国改革开放进一步扩大的年头,在这一年来临的时候,中国银行决定将全国所有的银行网点全部联网运行。联网的事情迅速在全国展开,当联网后总……扬科维奇或任国足主帅,陈戌源被提拔任新职务,代表中国足协投票国足新帅基本敲定,陈戌源被提拔上任新职务,代表中国足协投票中国足球在2023年春节假期并不好过,李铁案持续发酵之下,足协内部多名管理者被带走接受调查,再加上诸多足球媒体人……李易峰嫖娼,王鹤棣爆红,我才懂朱一龙非要演人生大事的原因文:玲珑最近娱乐圈最大的瓜,就是李易峰的多次嫖娼事件,初代顶流坐拥6000多万粉丝的男偶像,一夜塌方。虽然我始终get不到李易峰的颜值到底帅在哪里,明显的三角眼太呆……以前,二郎山长期堵车塞路,你知道是如何天堑变通途的吗?头条创作挑战赛盛开在二郎山上的文明共建花易国庆巍峨的二郎山,似一堵冲天的城墙,生生地将东西两侧山峰变成了冰火两重天。站在山顶垭口极目西眺,贡嘎主峰雪雾缭……Mongodb和数据库的数据一致性,这样操作更完美!前言其实大多数项目用到redis多一点,这篇文章我们主要来谈一下:如何保证Mongodb和数据库双写的数据一致性?1。MongoDB概念及基本用法1。1什么是MongoD……02完败!世界杯弱旅轰然倒下,沦为倒数第一,排名比国足高12北京时间10月14日早上,北美区世预赛第三阶段第6轮全面开打,洪都拉斯队主场02输给牙买加队,遭遇世预赛6轮不胜,仅积2分掉到积分榜倒数第一,并且连续8年不胜牙买加队。本……苏联6天歼灭日军75万,而中国8年仅击毙40万,为何差距这么1937年到1945年这八年,是中国人民永远无法忘记的八年,这八年间,日本军队在中国土地上犯下了罄竹难书的罪行。八年抗战,中国军队成功歼灭了45万日军,取得了战争的胜利,然而另……女生的格局一定要大不要在意别人的议论不要去想谁对你当面一套背后一套曾经我也很反感这些总想和他们争一个高低但现在的我对这些置之不理因为我知道我的精力是有限的不应……电影爱的捆绑Undo病娇变态《爱的捆绑Undo》是日本岩井俊二导演,于1994上映的电影,也是一部豆瓣7。4高分的爱情变态电影。作家由纪夫(丰川悦司)由于整日忙于写作,与妻子萌宝(山口智子)渐渐生出……再见!大S,小S!台湾姐妹花风云30年,终被打回原形了〔大笑〕〔耶〕前言〔耶〕〔大笑〕1993年年仅17岁的徐熙媛携妹妹徐熙娣以歌手身份出道,一路风风光光,终成台湾名门大派,谁说女子不如男,没有儿子的徐家,活出了自尊,自强,……季前赛首场失利后,来听听湖人主将们都说了什么?在经历漫长的休赛期之后,洛杉矶湖人队终于在周二回到了球场,他们主场迎战萨克拉门托国王队,拉开了202223赛季的季前赛序幕。湖人上半场表现强劲,但下半场没能保持住势头,最……深圳出租车巡网融合驾驶员全接入,平台订单比例近50南都讯出租车承担着大量市民的出行需求,是公共交通的重要一环。根据交通运输部发布数据,2022年我国主要城市出租车公司客运量530876万人次。然而,面临着网约车便捷的打车模式,……
纽约一特斯拉汽车失控撞击后飞出12米,致18岁乘客死亡两家支付公司声明我们的POS机费率没涨价,这个辟谣很成功詹姆斯明显力不从心了!湖人谨慎高中物理微专题重力与万有引力20!中国队再夺一冠,王牌组合KO东道主,报东京奥运会一箭之小美医生转型记小美博士的小记录津门游记(二十五)欧冠输给拜仁,因扎吉面临着更大的压力,他会是下一个图赫尔吗?苹果iOS15。4更新的37个表情中,一个怀孕的男人出现在了1910年迪化(新疆乌鲁木齐)伊宁喀什老照片五一小长假,快来宁强汉江源,给心灵放个假春季瘙痒皮肤,起小红点,会不由自主地想去挠,导致皮肤肿胀邓超的儿子,周杰伦的儿子,看到潘粤明儿子,网友快出道吧

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找美丽时装彩妆资讯历史明星乐活安卓数码常识驾车健康苹果问答网络发型电视车载室内电影游戏科学音乐整形