大量视频录像、语音和图片的场景下,是选择Redis,还是选择MongoDB?

背景:我们要开发一个平台,会涉及到大量的智能硬件,视频录像、语音记录、图片拍摄等,并且还会频繁的访问调用这些。对于数据存储,我们采用MySQL数据库。但是对于视频、语音、图片,我现在不确定选用Redis,还是MongoDB会好一些,长久考虑!目前的计划是,存储这些视频和语音,还要计算每个...显示全部

背景:我们要开发一个平台,会涉及到大量的智能硬件,视频录像、语音记录、图片拍摄等,并且还会频繁的访问调用这些。对于数据存储,我们采用MySQL数据库。但是对于视频、语音、图片,我现在不确定选用Redis,还是MongoDB会好一些,长久考虑!目前的计划是,存储这些视频和语音,还要计算每个用户存储的这些视频、语音占用的空间,剩余的分配空间之类的。请教各位大咖,指点指导!

收起
参与36

查看其它 5 个回答liucj2004的回答

liucj2004liucj2004其它undefined

首先否定redis,这只是一种缓存,而且数据量不能太大
其次否定mongodb,因为mongodb主要还是存类json数据。gridfs只是针对小数据量的变通方案,不建议用在大量数据的情况下,否则不好维护。

这种大文件、碎文件建议用以下方案:
由于数据量大可能后期会用到分布式存储(块存储、对象存储看你需求),所以可以放在glusterfs、FastDFS、ceph等。如果数据量没那么大,就本地的(或者多台机器)的文件系统,如xfs即可
然后把文件名、路径、创建修改时间、文件占用大小等放在mysql等数据库中

占用空间和剩余空间可以直接在数据库中计算

图片视频的缓存可以考虑cdn方案

农业其它 · 2019-03-27
  • 非常感谢!
    2019-03-27
  • 不用谢。 MongoDB的应用场景可以参考http://www.talkwithtrend.com/Article/178423 三年前写的,有些老。简而言之适合大表字段频繁加字段,有存储list需求等。然后原生高可用(自动切换)和分布式架构 redis主要就是做数据缓存,比如秒杀、高并发场景,也可以用在数据的临时落地。支持高可用(主从+哨兵)和分布式(redis cluster)
    2019-03-27
  • [此评论已删除]
    2019-03-27

回答者

liucj2004 最近回答过的问题

回答状态

  • 发布时间:2019-03-27
  • 关注会员:7 人
  • 回答浏览:7911
  • X社区推广