继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

userqiao
关注TA
已关注
手记 35
粉丝 1
获赞 3

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


课程内容


http://img4.mukewang.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数据格式非常适合文档格式化的存储及查询。

课程截图

http://img4.mukewang.com/6330638e0001df3316980938.jpg

http://img1.mukewang.com/6330639d0001f64f17980953.jpg

http://img3.mukewang.com/633063ab00012d9117010932.jpg


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP