2016-04-28 31 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