2016-04-28 32 views
0

我想了解封顶集合是什么,特别是在MongoDB的上下文中,以及与队列相比有什么区别?封顶集合vs队列

回答

1

加盖收集将删除最早的文件,所以这可能是一个问题,如果有需要处理从皑皑的集合中的所有文件

from mongo:封顶集合类似的方式来圆形 缓冲区工作:一旦收集填充其分配的空间,它使房间 通过覆盖 集合中最古老的文件新的文件。

比较队列:

  1. 队列不会删除记录时满(可以抛出一个异常 像内存不足)

  2. 队列中离开的时候可以删除记录 - 皑皑收集你需要自己删除它

  3. capped collection cleanup:如果capped collection size是40个文件 - 那么当第41个d时添加 - >第一个条目被删除

我认为这是最重要的事情 - 任何意见欢迎!

+0

谢谢,可以回顾:) - 队列可以自动删除旧元素(FILO)。 - 在capped集合清理发生明确(?) – dmi3y

+0

@ dmi3y在集合集合中没有清理。较旧的文档只是从中删除。因此,如果封顶收集大小为40个文档 - 那么当添加41时 - > 1将被删除 – profesor79

1

CAPPED在mongodb中收集的是circular buffer的实现。

从官方文档

封顶集合是支持插入和检索基于插入顺序文件的高通量操作固定大小的集合。封闭式集合的工作方式与循环缓冲区类似:一旦集合填满其分配的空间,它就会通过覆盖集合中最早的文档为新文档腾出空间。当它达到其限制

enter image description here

+0

感谢您的信息,虽然您可以详细阐述更多,但这并不能让我清楚。 – dmi3y