假设 Mongo 的上限集合大部分时间都保存在内存中,那么使用它作为穷人的内存缓存是否实用?
最佳答案
您绝对可以使用上限集合来实现此目的。但了解基本限制很重要。
- 数据将根据插入订单而不是到期时间而过期
- 频繁访问的数据仍可能被挤出内存 默认情况下,
_id
列未在上限集合中定义,您需要确保这些索引。- 不能以改变对象大小的方式修改对象。例如,您可以增加现有整数,但不能添加字段或修改条目上的字符串值。
- 上限集合 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/