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

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

6回答

undefinedundefined  其它 , undefined
泊涯周盛昌董志卫等赞同了此回答
首先否定redis,这只是一种缓存,而且数据量不能太大其次否定mongodb,因为mongodb主要还是存类json数据。gridfs只是针对小数据量的变通方案,不建议用在大量数据的情况下,否则不好维护。 这种大文件、碎文件建议用以下方案:由于数据量大可能后期会用到分布式存储(块存储、对象存储...显示全部

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

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

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

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

收起
 2019-03-27
浏览903
aixchina 邀答
  • 非常感谢!
    2019-03-27
  • 不用谢。 MongoDB的应用场景可以参考http://www.talkwithtrend.com/Article/178423 三年前写的,有些老。简而言之适合大表字段频繁加字段,有存储list需求等。然后原生高可用(自动切换)和分布式架构 redis主要就是做数据缓存,比如秒杀、高并发场景,也可以用在数据的临时落地。支持高可用(主从+哨兵)和分布式(redis cluster)
    2019-03-27
  • [此评论已删除]
    2019-03-27
匿名用户匿名用户
txst666sunsixuan赞同了此回答
视频录像、语音和图片这些数据不适合存redis 或 mogoDB里,建议存成文件,只把索引信息存储到MySQL就可以了,访问时通过CDN就可以了。显示全部

视频录像、语音和图片这些数据不适合存redis 或 mogoDB里,建议存成文件,只把索引信息存储到MySQL就可以了,访问时通过CDN就可以了。

收起
 2019-03-27
  • redis我只是用过作为缓存处理,跟后台数据库协作,一般什么样的数据适合存储在Redis或者MangoDB里面,最好是有实际操作的,因为网上查到的资料,众说纷纭,我也不敢茫然去尝试
    2019-03-27
  • 谢谢!
    2019-03-27
  • yinxin  yinxin 回复 sunsixuan
    redis适合数据量小,并发高,对响应延迟小的业务场景。
    2019-03-27
  • yinxin  yinxin 回复 sunsixuan
    MongoDB介于MySQL和redis之间,性能比MySQL好一点点,支持schema free,没想好如何设计schema时,想快速上线业务,也没DB维护人员,可以考虑使用。
    2019-03-27
  • sunsixuan  sunsixuan 回复 yinxin
    谢谢!
    2019-03-28
bryanbryan  软件架构设计师 , 金融研发
yinxinnoahli赞同了此回答
这些都是一些非结构化数据,对这些资料的使用取决于实际业务场景。一种可行的方案是“mysql+hadoop”。在描述一个文件的时候,可以将其分为2部分,一部分是元数据的描述,比如业务交易号、流水号,文件在 hadoop 中的存储位置等,一部分是真正的文件,将其存储在 hadoop 中。1)扩展性:ha...显示全部

这些都是一些非结构化数据,对这些资料的使用取决于实际业务场景。一种可行的方案是“mysql+hadoop”。在描述一个文件的时候,可以将其分为2部分,一部分是元数据的描述,比如业务交易号、流水号,文件在 hadoop 中的存储位置等,一部分是真正的文件,将其存储在 hadoop 中。
1)扩展性:hadoop 的架构可以实现横向扩展,相对比较容易。
2)数据管理:所在的业务数据都有一定的生命周期,可以将数据分为hot data,warm data, cold data。等业务超出生命周期后,进行数据归档和清理。从而保证系统数据不会被无限扩大。这些都是非常成熟的案例。

收起
 2019-03-29
浏览519
SwitcherSwitcher  数据库管理员 , XX银行
yinxin赞同了此回答
mongodb+hadoop:首先,Mongodb最适合存的nosql类型是诸如json、html,视频、图片这些东西就是hadoop的专长了。可选mongodb做链接路由用,轻量快速,hadoop存放视频、语音、图片。通过hadoop存放视频、语音、图片的实践非常多,基本上各大银行的影像类都是如此,不同的是链接路由这块...显示全部

mongodb+hadoop:
首先,Mongodb最适合存的nosql类型是诸如json、html,视频、图片这些东西就是hadoop的专长了。
可选mongodb做链接路由用,轻量快速,hadoop存放视频、语音、图片。通过hadoop存放视频、语音、图片的实践非常多,基本上各大银行的影像类都是如此,不同的是链接路由这块一般是采用oracle或者mysql

收起
 2019-06-18
浏览154
杨文云杨文云  数据库管理员 , GBS
我推荐一个方案OceanStor 9000存图片和视频原始数据,解析过后的结构化数据和特征值放在华为的mppdb叫GaussDB里,这种方式可以用URL方式访问显示全部

我推荐一个方案OceanStor 9000存图片和视频原始数据,解析过后的结构化数据和特征值放在华为的mppdb叫GaussDB里,这种方式可以用URL方式访问

收起
 2019-03-27
浏览658
MYGODMYGOD  信息技术经理 , 股份制银行
两个都不好,两个都不是干这事的。我们在使用sdb,也是亿级数量了,不错。显示全部

两个都不好,两个都不是干这事的。我们在使用sdb,也是亿级数量了,不错。

收起
 2019-04-30
浏览383

提问者

sunsixuanCTO, 鹏华集团

问题状态

  • 发布时间:2019-03-27
  • 关注会员:7 人
  • 问题浏览:1240
  • 最近回答:2019-06-18
  • 关于TWT  使用指南  社区专家合作  厂商入驻社区  企业招聘  投诉建议  版权与免责声明  联系我们
    © 2019  talkwithtrend — talk with trend,talk with technologist 京ICP备09031017号-30