2014-04-01 140 views
1

的文檔約Redis的KEYSPACE通知http://redis.io/topics/notifications說接近尾聲,與超時的關鍵是從數據庫中刪除Redis的KEYSPACE聲明和密鑰過期

  • 「當密鑰由命令訪問,是發現已過期。「
  • ...

問:是否足以檢索非常關鍵的,例如通過KEYS *,還是我必須訪問密鑰引用的內容?

背景:第二處理我省略(將..以上)是概率的過程,以及過期密鑰的真實缺失可能被延遲,因此EXPIRED事件的遞送。我想確保通知給訂戶,所以只需訪問密鑰就會更容易。

+0

嗯。我懂了。 「KEYS prefix:*」在運行時不是一個好主意。但是還有什麼? – Falko

回答

1

Redis的實現對期滿的鍵定期檢查的邏輯和拾取鍵的數目(100),並檢查他們的期滿。

我的理解是,你的關心與上述邏輯也就存在屬於還沒有被刪除過期的按鍵事件的事實。

爲了避免這種情況檢查鑰匙只是存在將其刪除。應記住REDIS調用的成本,因此應設計一個LUA腳本或批量命令,該命令應定期調用並迭代一列鍵並在其上運行EXISTS命令,並在其過期時導致自動刪除。

爲了測試這一點,你需要一個大的數據集。