我们可以使用 MongoDB 作为内存缓存库(memcache 和 memcached)的替代品吗?
MongoDB和内存缓存库有什么区别。
MongoDB 作为缓存存储的主要问题之一是它没有过期机制。您可以在此答案中找到更多详细信息。
更新自 MongoDB v2.2 以来,它允许 TTL 用于集合。感谢JohnnyHK 指点。
我建议使用Redis 进行缓存,使用 MongoDB 作为数据库。他们一起工作很好。
MongoDB 最大的问题是它不像 memcached 那样自然而有力地将所有内容加载到内存中,正如它的名字一样,它是内存中的键值存储。
您还必须考虑到 MongoDB 本身不进行内存管理,而是允许操作系统使用本机 LRU 算法完全控制它。我无法理解这可能给您带来的任何问题,因为我没有您的数据、索引或查询。
然而,许多尝试将 memcache 用作数据库的人(很多人都这样做)发现它在这样做方面并不是特别快(并不是真正为它设计的),这就是 MongoDB 突破的地方。
MongoDB 是否可以替代 memcache 取决于您的需求,但是如果您需要 MongoDB 需要替换缓存,那么您也可以用 MongoDB 替换 SQL,这是我对此事的诚实看法,因为您模糊了缓存和存储之间的界限。
这是一些用 MongoDB 替换 memcached 的人的示例。或者至少消除了对 memcached 的需要。
http://blog.serverdensity.com/removing-memcached-because-its-too-slow/