mongodb 和 redis 的疑惑,我感觉 mongodb 岂不是可以代替 redis 了?

2018-12-18 04:21:27 +08:00
 51300520

mongodb 早就是优先把数据放入内存,内存装不下了才存磁盘做冷热数据处理。那我是不是可以把 mongodb 看做一个比 redis 更智能的内存数据库?它还知道内存不够了自己做冷热数据分开存储处理。

有文章说到 mongodb 数据量大了超过内存的时候要从磁盘读,速度慢。可是数据量大了超过内存这个情况 redis 更没法用了啊,要保证数据完全在内存中那就只能做群集分担,要么就是 redis 根据设定规则淘汰一些键。而 mongodb 也可以方便的做群集。

进一步我产生了 mongodb 是不是可以代替 redis 的想法?用 mongodb 我可以不那么担心内存,就算数据量超过内存大小了他至少会自动处理,虽然性能变差了至少还能用,给我优化系统留一个缓冲时间。而用 redis 我要时时刻刻担心并监控内存使用情况,生怕一不留神内存爆了。

我没怎么用过 mongodb,想了解一下去网上找的文档阅读,以上是我阅读后的思考结果。有熟悉这 2 种数据的朋友帮忙解答一下疑惑吗?

12176 次点击
所在节点    MongoDB
28 条回复
NoBugDie
2018-12-18 10:32:21 +08:00
mark 一下
Light3
2018-12-18 10:34:03 +08:00
缓存 和数据库 都分不清吗..
fcten
2018-12-18 11:15:32 +08:00
对于楼主来说,可能是的。因为个人项目 /中小型项目往往没有足够的收益,节省的人力成本是最主要的。

对于成熟的工程来说,不是。因为 redis 带来的性能提升所节省的成本要远远多于多付出的那点人力成本。更何况成熟的项目不能容忍性能波动,不可能出现内存不够硬盘来凑的情况。

如果微信动不动一条消息延迟一个小时才能收到,谁还会用它?
nekoyaki
2018-12-18 11:23:02 +08:00
类似 ATP 和葡萄糖的关系吧,redis 用全内存设计,牺牲内存为代价换来了巨大的速度提升。
实际更多的情况这些东西是互补的而不是互斥的。
另外 redis 也不一定都是用来做“缓存”,很多用法里,redis 是拿来存储真正的业务数据,需要持久化的。适用场景就是比如列表啊,关系关联啊,键值映射之类的,体积小,但是需要快速查询的那种。
xkeyideal
2018-12-18 11:28:37 +08:00
特快列车与高铁的区别
Tyrone
2018-12-18 11:29:46 +08:00
mark
Mexion
2018-12-18 11:40:33 +08:00
先马
jifengg
2018-12-19 12:08:46 +08:00
我们有些项目里,这俩都用了,redis 用做缓存,mongodb 做持久化。分工明确。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/518453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX