mongodb - 使用 Mongo 的上限集合作为内存缓存是否实用?

标签 mongodb

假设 Mongo 的上限集合大部分时间都保存在内存中,那么使用它作为穷人的内存缓存是否实用?

最佳答案

您绝对可以使用上限集合来实现此目的。但了解基本限制很重要。

  1. 数据将根据插入订单而不是到期时间而过期
  2. 频繁访问的数据仍可能被挤出内存
  3. 默认情况下,
  4. _id 列未在上限集合中定义,您需要确保这些索引。
  5. 不能以改变对象大小的方式修改对象。例如,您可以增加现有整数,但不能添加字段或修改条目上的字符串值。
  6. 上限集合 cannot be sharded .

由于 #1 & #4 & #5,您肯定会失去一些核心 Memcache 功能。

有一张长期未结清的 JIRA 票证 TTL-based capped collections这可能正是您想要的。

当然,整个争论中最大的问题是“额外的 RAM 在哪里”。许多使用 MongoDB 作为主要存储的人只是放弃 Memcache。如果您有一堆额外的 RAM,为什么不直接用它来存储实际数据而不是该数据的副本呢?

关于mongodb - 使用 Mongo 的上限集合作为内存缓存是否实用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7614788/

相关文章:

javascript - Meteor 中的复合集合

node.js - 无法使用 ReactJs MongoDB NodeJS 删除项目

ruby-on-rails - mongoid 中 embeds_many 和 has_many 的区别

javascript - 如何从textarea ejs文件中获取数据库的数组?

ruby - MongoDB:如何存储大数组? (ERR Document too large: This BSON documents is limited to 16777216 bytes)

node.js - MongoDB 超时问题 (Node.js)

Django:admin.StackedInline 没有外键

node.js - 查询数组内的匹配日期

通过 RoboMongo 进行 MongoDB 远程连接

java - 使用没有迭代器的 Java 复制集合 Mongodb 以进行数据库管理员登录