Redis如何過期key

2021-09-05 01:33:02 字數 399 閱讀 7528

過期redis key有兩種方式:被動和主動方式。

被動過期:當一些客戶端要訪問這個key時,發現它已經過期,則刪除。

顯然這樣做是不夠的,因為可能有些key不會被再次訪問。這種情況下也同樣要刪除這些過期的key。因此就有了主動過期的方式。

主動過期:redis會定期,通過隨機的方式在設定了過期時間的key中選擇一些key,如果這些key已經超過過期時間則把他們從keyspace中刪除。

redis每秒鐘會做10次這樣的事情:

從設定了過期時間的key集合中測試20個隨機的key。

刪除所有過期的key。

如果超過25%的key過期,則從第1步開始。

這是乙個簡單的概率演算法,基於我們的抽樣對於整個key空間具有代表性。直到過期率低於25%。

翻譯自 

redis過期key監聽

修改配置檔案 redis.conf notify keyspace events ex k 鍵空間通知,以 keyspace 為字首 e 鍵事件通知,以 keysevent 為字首 g del expipre rename 等型別無關的通用命令的通知,string命令 l list命令 s set命...

redis監聽key過期

檢視redis版本 redis server v redis server version 要使redis可以監聽到key過期,需新增配置,實現原理 在redis2.8之後的版本中,當我們將對使用redis快取起來並設定快取失效時間的時候,會觸發redis的鍵事件通知,客戶端訂閱這個通知事件,服務端...

redis中key過期事件

剛到新公司乙個月左右,有個新需求,想做定時任務,比如在使用者註冊時間的3天後推送使用者一條訊息。從剛開始腦子裡面閃現的資料庫輪詢,立馬否定掉 浪費資源 再到linux系統的定時任務,但是當使用者量過大時,肯定不行。最後想著redis如果key過期了,能不能監聽觸發乙個事件,這樣便可以不用時刻的查詢是...