2017-02-07 30 views

回答

-1

不幸的是,Redis中沒有一種max_age功能,除非您爲每個鍵設置了TTL。

+0

如何設置每個密鑰的TTL會給最老的密鑰的年齡? – Amit

2

Redis不保存密鑰的年齡。如果您在所有按鍵上設置了固定TTL,則可以對幾個按鍵進行採樣,並通過查看它們的TTL來了解它們的年齡(因爲所有對象都具有相同的TTL)。這樣你可以統計估計最老的密鑰。

+0

它會給出最老的密鑰,但不是最老的密鑰的年齡。我的用例是每天刷新緩存,我打算使用max_age進行完整性檢查,即前一天沒有任何內容留在緩存中。可能我可以用EXPIREAT命令,例如在日邊界的清除鍵或設置TTL =日邊界 - 當前時間。 – Amit

+0

@認爲它會給你最老的鑰匙的估計年齡。年齡始終是'$ GLOBAL_TTL - $ OBJECT_TTL',即具有6400秒TTL的對象在80000秒前創建。 無論如何,聽起來就像你只是在尋找LRU和過期時間,而這個重做過程並沒有保存年齡。 –

+0

Redis沒有全局ttl。然而,設置day_boundary(我們可以假設爲全局ttl) - 當前時間ttl的工作原理,只是在應用程序中執行它很慢(python代碼)。 – Amit

相關問題