MongoDB 2.2 引入一個新特性 —— TTL 集合,TTL 集合支援失效時間設定,當超過指定時間後,集合自動清除超時的文件,這用來儲存一些諸如session會話資訊的時候非常有用,或者儲存快取資料使用。 如果你想使用 TTL 集合,你要用到 expireAfterSeconds 選項:db.ttl.ensureIndex({"Date": 1}, {expireAfterSeconds: 300})
|
限制
使用 TTL 集合時是有限制的:
如果你違反了上述三個規則,那麼超時後文件不會被自動清除。
|
文件是怎麼被刪除的? mongod 後臺程式會實時跟蹤過期的文件並刪除,我們來對此進行檢查測試: 首先我們建立一個索引並設定 10 秒鐘後失效: db.ttl_collection.ensureIndex( { "Date": 1 }, { expireAfterSeconds: 10 } ) 然後插入文件: db.ttl_collection.insert({"Date" : new Date()}) |
結論Time To Live 集合是 MongoDB 2.2 新引入的一個非常棒的特性,但你需要考慮的是在後臺程式執行之前文件是一直存在的。 |