为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第20天 MongoDB的使用场景列举

标签:
Java MongoDB

课程名称:Spring Cloud 进阶 Alibaba 微服务体系自媒体实战
课程章节: 第5章 Admin 平台运营管理中心服务
主讲老师: 风间影月


课程内容


https://img1.sycdn.imooc.com//633062fc00019f1a03680302.jpg

  1. 历史数据快照:比如在电商系统里用户购买一个商品,都会涉及到订单,那么在用户下单购买的时候,该订单对应的商品数据就是此时此刻的数据,该商品数据不会随着商户的更改而更改,这就是快照数据。比如今天用户购买价格是100块钱,明天涨价10块钱,那么用户在查看订单的时候,价格就应该是下单的价格,这些都是快照数据。而快照数据对于每个用户来说有很多,所以往往把他们剥离出来放到MongoDB中去。

  2. 用户浏览记录:用户在电商系统会浏览很多商品,那么如果存到数据库,那么该张表的数据就是指数级增长了,db压力相当大,所以可以剥离放入到mongodb中。

  3. 客服聊天记录:虽然我们对外称聊天记录不存保存,但是我们还是会存储一下,而聊天记录都是非关键数据,哪怕没有也无所谓,所以完全可以放到mongodb中去。

  • 能不能把这些数据都存redis中呢?
    不行,因为redis数据保存到内存,内存很贵的,如果你们公司老板土豪,可以无限购买内存的话,无所谓。但是需要考虑内存成本的时候,这就需要使用mongodb了。
    所以说,Redis主要用来分摊读压力,提供缓存机制。而MongoDB为数据库分摊大数据量的存储压力,此外这些都是非核心业务数据,哪怕全部丢失了,也无所谓,不会造成整个系统崩溃。


MongoDB的使用场景

MongoDB除课程上使用的一些场景外,外有一下几个场景:

mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。mongo适用于以下场景:

a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。

c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。

d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。

e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。

课程截图

https://img1.sycdn.imooc.com//6330638e0001df3316980938.jpg

https://img1.sycdn.imooc.com//6330639d0001f64f17980953.jpg

https://img1.sycdn.imooc.com//633063ab00012d9117010932.jpg


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1
获赞与收藏
3

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消