(Redis基礎(chǔ)教程之十一) 如何使Redis中的Key過期

介紹

Redis是一個開源的內(nèi)存中鍵值數(shù)據(jù)存儲。默認(rèn)情況下,Redis密鑰是永久性的,這意味著Redis服務(wù)器將繼續(xù)存儲它們,除非手動將其刪除。但是,在某些情況下,您已經(jīng)設(shè)置了密鑰,但是您知道要在經(jīng)過一定時間后才將其刪除。換句話說,您希望密鑰是可變的。本教程說明了如何設(shè)置密鑰的過期時間,如何檢查直到密鑰過期的剩余時間以及取消密鑰的過期設(shè)置。

如何使用本指南

本指南以備有完整示例的備忘單形式編寫。我們鼓勵您跳至與您要完成的任務(wù)相關(guān)的任何部分。

本指南中顯示的命令已在運(yùn)行Redis版本4.0.9的Ubuntu 18.04服務(wù)器上進(jìn)行了測試。要設(shè)置類似的環(huán)境,您可以按照我們的指南如何在Ubuntu 18.04上安裝和保護(hù)Redis的步驟1進(jìn)行操作。我們將通過使用Redis命令行界面運(yùn)行它們來演示這些命令的行為。請注意,如果您使用其他Redis界面(例如Redli),則某些命令的確切輸出可能會有所不同。 redis-cli

另外,您可以提供一個托管的Redis數(shù)據(jù)庫實(shí)例來測試這些命令,但是請注意,根據(jù)數(shù)據(jù)庫提供者所允許的控制級別,本指南中的某些命令可能無法按所述方式工作。要配置DigitalOcean托管數(shù)據(jù)庫,請遵循我們的托管數(shù)據(jù)庫產(chǎn)品文檔。然后,您必須 安裝Redli 設(shè)置TLS隧道才能通過TLS連接到托管數(shù)據(jù)庫。

Setting Keys to Expire

您可以使用expire命令設(shè)置現(xiàn)有密鑰的過期時間,該命令將密鑰名稱和直到過期的秒數(shù)作為參數(shù)。為了證明這一點(diǎn),請運(yùn)行以下兩個命令。第一創(chuàng)建名為字符串鍵key_melon具有值"cantaloupe",而第二組它到450秒之后超時:

set key_melon "cantaloupe"
expire key_melon 450

如果成功設(shè)置了超時,則expire命令將返回(integer) 1。如果設(shè)置超時失敗,它將返回(integer) 0。

或者,您可以使用該expireat命令將密鑰設(shè)置為在特定的時間點(diǎn)過期。它使用Unix時間戳作為參數(shù),而不是到期前的秒數(shù)。Unix時間戳是自Unix紀(jì)元(即1970年1月1日UTC 00:00:00)以來的秒數(shù)??梢允褂迷S多在線工具來查找特定日期和時間的Unix時間戳,例如EpochConverterUnixTimestamp.com。

例如,要設(shè)置key_melon為在2025年5月1日格林尼治標(biāo)準(zhǔn)時間晚上8:30到期(以Unix timestamp表示1746131400),可以使用以下命令:

expireat key_melon 1746131400

請注意,如果傳遞給您的時間戳expireat已經(jīng)發(fā)生,它將立即刪除密鑰。

Checking How Long Until a Key Expires

你設(shè)置一鍵到期任何時候,你可以檢查剩余到期為止(以秒為單位)的時候ttl,它的全稱是“ 牛逼 IME 牛逼 ? 香港專業(yè)教育學(xué)院”:

ttl key_melon


Output(integer) 433

有關(guān)更詳細(xì)的信息,可以運(yùn)行pttl,它將返回直到密鑰過期的時間(以毫秒為單位):

pttl key_melon


Output(integer) 431506

如果密鑰尚未設(shè)置為過期且密鑰不存在,則兩者ttlpttl都將返回。(integer) -1``(integer) -2

Persisting Keys

如果密鑰已設(shè)置為過期,則任何覆蓋密鑰內(nèi)容的命令(例如setgetset)都會清除密鑰的超時值。要手動清除鍵的超時,請使用以下persist命令:

persist key_melon

如果成功完成,該persist命令將返回(integer) 1,表明密鑰將不再過期。

Conclusion

本指南詳細(xì)介紹了用于在Redis中操作和檢查鍵持久性的許多命令。如果您想在本指南中概述其他相關(guān)的命令,參數(shù)或過程,請?jiān)谙旅娴脑u論中提出疑問或提出建議。

有關(guān)Redis命令的更多信息,請參閱關(guān)于如何管理Redis數(shù)據(jù)庫的系列教程。

  1. 如何在ubuntu18.04上安裝和保護(hù)redis
  2. 如何連接到Redis數(shù)據(jù)庫
  3. 如何管理Redis數(shù)據(jù)庫和Keys
  4. 如何在Redis中管理副本和客戶端
  5. 如何在Redis中管理字符串
  6. 如何在Redis中管理list
  7. 如何在Redis中管理Hashes
  8. 如何在Redis中管理Sets
  9. 如何在Redis中管理Sorted Sets
  10. 如何在Redis中運(yùn)行事務(wù)
  11. 如何使Redis中的Key失效
  12. 如何解決Redis中的問題
  13. 如何從命令行更改Redis的配置
  14. Redis數(shù)據(jù)類型簡介
    作者:分布式編程
    出處:https://zthinker.com/
    如果你喜歡本文,請長按二維碼,關(guān)注 分布式編程
    .
    分布式編程
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容