12

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

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

4

3 回答 3

8

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

更新自 MongoDB v2.2 以来,它允许 TTL 用于集合。感谢JohnnyHK 指点。

我建议使用Redis 进行缓存,使用 MongoDB 作为数据库。他们一起工作很好。

于 2013-01-11T20:12:58.187 回答
6

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

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

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

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

于 2013-01-11T21:03:20.503 回答
4

这是一些用 MongoDB 替换 memcached 的人的示例。或者至少消除了对 memcached 的需要。

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

于 2013-01-11T20:19:07.707 回答