【案例】--“超大容量”存储思考

一、前言

案例背景
最近项目遇到一个问题,用户在创作时,有文件流、图片、超链接、文本等信息产生,而这些信息的容量高达几十M【超大容量的信息】。由于历史技术方案局限性,将超大容量的信息存入mongodb/ES的一个字段中。导致查询时往往会内存泄漏或接口响应慢等现象。
思考
面对上面的问题,有这些思考:(1)、对于超大容量的文件该如何去存储?(2)、如果是超大容量的二进制信息流该如何存储?
----基于超大容量的文件存储,在【(非结构化)文件管理案例】中有详细介绍。下面主要介绍“超大容量的二进制流的存储”。

二、GridFS

对于超大容量的文件/二进制信息流,Mongodb提供GridFS可满足。GridFS是MongoDB的一个用来存储/获取大型数据(图像、音频、视频等类型的文件)的规范,能存储超过文档大小(16MB)限制的文件。
工作原理是:在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个块进行存储。GridFS使用两个集合 (collection)存储数据:
files:包含元数据对象(如文件的名称、上传的时间)
chunks:包含其他一些相关信息的二进制块

fs.files集合存储文件的元数据,以类的json文档格式存储。每在GridFS存储一个文件,则会在fs.files集合中生成一个文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamBoy_W.W.Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值