mongodb 的特点?
1 快
nosql 基于内存设计的,性能上毋庸置疑 (主要原理:将热数据存在物理内存中,提高整体查询速度)
2 Json存储格式
支持大文本
3 高拓展性
(高可用与集群架构,完善的 sharding 机制)(参考# MongoDB Sharding 分片技术)
4 failover机制
项目中为什么会使用 mongodb?
主要基于两点
第一个是快,不管是什么项目,这一点都是优先被想到的。这个要得益于它是基于内存设计的,它的热数据存储在物理内存中。
第二个是 json 的存储格式
之前参与过的一个项目,有一张表是存储现场机器实时运行数据,不仅数据量巨大(超过 500w 条),而且数据中包含大文本 json 数据,项目运行一段时间发现需要不断去维护这张表,不定时清理,甚至做过分表。所以我在后面的技术评估中,总结了两个问题,数据量巨大,有 json 文本信息,所以很自然的想起使用 mongod,最终很好的解决了这个问题。
其他的,mongo 的数据也是持久化存储在硬盘里的,也是很安全的,很多公司现在喜欢直接把 mongo 当成数据库来使用,而使用 redis 来当缓存。
使用 mongo 也会面临数据量大的问题,如何解决?
mongo 具有灵活的拓展性,以及完善的 sharding 机制。
为什么不考虑使用 Redis?
我觉得两者并没有什么巨大的鸿沟,有时用哪个完全看你自己,但然我来抉择的话,我会考虑实际的业务场景
mongo 很特殊,我一直觉得它是介于关系型与非关系型数据之间的一种数据库,加上 json 的存储格式,可以存储大文本,可以用于放一些数据量大,但实际价值随时间越来越低的数据。(持久性)
redis 使用场景,最佳是存储是实时性数据、热数据,比如排名、统计,最佳最好一类的。我在之前的项目中使用到的,比如用户登陆 token、 注册时验证码、sesion 同步啊、消息队列啊。(实时性)
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于