Redis命令參考【EXPIRE】

來源:互聯網
上載者:User

標籤:

EXPIRE

EXPIRE key seconds

為給定 key 設定存留時間,當 key 到期時(存留時間為 0 ),它會被自動刪除。

在 Redis 中,帶有存留時間的 key 被稱為『易失的』(volatile)。

存留時間可以通過使用 DEL 命令來刪除整個 key 來移除,或者被 SET 和 GETSET 命令覆寫(overwrite),這意味著,如果一個命令只是修改(alter)一個帶存留時間的 key 的值而不是用一個新的 key 值來代替(replace)它的話,那麼存留時間不會被改變。

比如說,對一個 key 執行 INCR 命令,對一個列表進行 LPUSH 命令,或者對一個雜湊表執行 HSET 命令,這類操作都不會修改 key 本身的存留時間。

另一方面,如果使用 RENAME 對一個 key 進行改名,那麼改名後的 key 的存留時間和改名前一樣。

RENAME 命令的另一種可能是,嘗試將一個帶存留時間的 key 改名成另一個帶存留時間的 another_key ,這時舊的 another_key (以及它的存留時間)會被刪除,然後舊的 key 會改名為 another_key ,因此,新的 another_key 的存留時間也和原本的 key 一樣。

使用 PERSIST 命令可以在不刪除 key 的情況下,移除 key 的存留時間,讓 key 重新成為一個『持久的』(persistent) key

更新存留時間

可以對一個已經帶有存留時間的 key 執行 EXPIRE 命令,新指定的存留時間會取代舊的存留時間。

到期時間的精確度

在 Redis 2.4 版本中,到期時間的延遲在 1 秒鐘之內 —— 也即是,就算 key 已經到期,但它還是可能在到期之後一秒鐘之內被訪問到,而在新的 Redis 2.6 版本中,延遲被降低到 1 毫秒之內。

Redis 2.1.3 之前的不同之處

在 Redis 2.1.3 之前的版本中,修改一個帶有存留時間的 key 會導致整個 key 被刪除,這一行為是受當時複製(replication)層的限制而作出的,現在這一限制已經被修複。

可用版本:
>= 1.0.0
時間複雜度:
O(1)
傳回值:
設定成功返回 1 。當 key 不存在或者不能為 key 設定存留時間時(比如在低於 2.1.3 版本的 Redis 中你嘗試更新 key 的存留時間),返回 0
redis> SET cache_page "www.google.com"OKredis> EXPIRE cache_page 30  # 設定到期時間為 30 秒(integer) 1redis> TTL cache_page    # 查看剩餘存留時間(integer) 23redis> EXPIRE cache_page 30000   # 更新到期時間(integer) 1redis> TTL cache_page(integer) 29996
模式:導航會話

假設你有一項 web 服務,打算根據使用者最近訪問的 N 個頁面來進行物品推薦,並且假設使用者停止閱覽超過 60 秒,那麼就清空閱覽記錄(為了減少物品推薦的計算量,並且保持推薦物品的新鮮度)。

這些最近訪問的頁面記錄,我們稱之為『導航會話』(Navigation session),可以用 INCR 和 RPUSH 命令在 Redis 中實現它:每當使用者閱覽一個網頁的時候,執行以下代碼:

MULTI    RPUSH pagewviews.user:<userid> http://.....    EXPIRE pagewviews.user:<userid> 60EXEC

如果使用者停止閱覽超過 60 秒,那麼它的導航會話就會被清空,當使用者重新開始閱覽的時候,系統又會重新記錄導航會話,繼續進行物品推薦。

 

連結:http://redisdoc.com/key/expire.html

Redis命令參考【EXPIRE】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.