MongoDB 是 Memcached 更好的替代品? [关闭]

Posted

技术标签:

【中文标题】MongoDB 是 Memcached 更好的替代品? [关闭]【英文标题】:MongoDB is better replacement of Memcached? [closed] 【发布时间】:2012-12-26 09:33:14 【问题描述】:

我们可以使用 MongoDB 作为内存缓存库(memcache 和 memcached)的替代品吗?

MongoDB 和内存缓存库有什么区别。

【问题讨论】:

我认为一个区别是内存缓存库为保持对象特定时间提供了时间间隔,但是使用 mongoDB 我们不能这样做。 不错的问题 - 使用 MongoDB 作为缓存肯定有优先权。 @CRUSADER 实际上,MongoDB 是在考虑两个案例研究的情况下制作的。两者都作为存储层,但一个用于数据库替换,另一个用于缓存替换。 @CRUSADER 提问是为了寻求答案,而不是提出观点。 这个问题肯定是话题,在这里寻找非常相似的Memcached vs. Redis问题。 【参考方案1】:

MongoDB 作为缓存存储的主要问题之一是它没有过期机制。您可以在this answer找到更多详细信息。

更新 从 MongoDB v2.2 开始,它允许 TTL 用于集合。感谢 JohnnyHK 的指点。

我建议使用Redis for caching 和MongoDB 作为数据库。他们合作得很好。

【讨论】:

从 MongoDB 2.2 开始,这不再适用:docs.mongodb.org/manual/tutorial/expire-data @JohnnyHK 好点!谢谢!【参考方案2】:

MongoDB 最大的问题是它不像 memcached 那样自然而有力地将所有内容加载到内存中,正如它的名字一样,它是内存中的键值存储。

您还必须考虑到 MongoDB 自己不进行内存管理,而是允许操作系统使用本机 LRU 算法完全控制它。我无法理解这可能给您带来的任何问题,因为我没有您的数据、索引或查询。

然而,许多尝试将 memcache 用作数据库的人(很多人都这样做)发现它在这样做时并不是特别快(并不是真正为它设计的),而这正是 MongoDB 突破的地方。

MongoDB 是否可以替代 memcache 取决于您的需求,但是如果您需要 MongoDB 需要替换缓存,那么您也可以将 SQL 替换为 MongoDB,这是我对很重要,因为您模糊了缓存和存储之间的界限。

【讨论】:

【参考方案3】:

这里有一些人用 MongoDB 替换了 memcached 的例子。或者至少消除了对 memcached 的需求。

http://blog.serverdensity.com/removing-memcached-because-its-too-slow/

【讨论】:

以上是关于MongoDB 是 Memcached 更好的替代品? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Memcached, Redis, MongoDB区别

mongodb nosql redis memcached 是什么?

可以持久保存到磁盘的 memcached 的替代品

redis memcached MongoDB

memcached的替代品,可以持久存储到磁盘

正确理解memcached,才能更好的使用