redis過期key監聽

2021-08-14 13:41:53 字數 1254 閱讀 8627

修改配置檔案 redis.conf

notify-keyspace-events ex

# k    鍵空間通知,以__keyspace@__為字首

# e    鍵事件通知,以__keysevent@__為字首

# g    del , expipre , rename 等型別無關的通用命令的通知, ...

# $    string命令

# l    list命令

# s    set命令

# h    hash命令

# z    有序集合命令

# x    過期事件(每次key過期時生成)

# e    驅逐事件(當key在記憶體滿了被清除時生成)

# a    g$lshzxe的別名,因此」ake」意味著所有的事件

重新啟動redis

原理:每個庫中redis將失效的key 已發布/訂閱方式 儲存。 發布到頻道__keysevent@__ 代替選擇的redis庫 __keysevent@3__這種形式。

然後取改頻道。獲得key

以下為例項:

/*** 

* @classname:  expiredmessagelistenerimpl   

* @description:todo(rediskey失效監聽)   

*/public class expiredmessagelistenerimpl  extends jedispubsub  

@override  

public void onpmessage(string pattern, string channel, string message)  

@override  

public void onsubscribe(string channel, int subscribedchannels)  

@override  

public void onpunsubscribe(string pattern, int subscribedchannels)  

@override  

public void onpsubscribe(string pattern, int subscribedchannels)  

@override  

public void onunsubscribe(string channel, int subscribedchannels)  

public static void main(string args)

redis監聽key過期

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

監聽Redis快取key過期

有些業務需要延遲一定時間後執行,比如訂單提交後15分鐘未支付就自動關閉,這裡只是舉個例子。我們可以通過監聽redis的key過期事件來實現這個功能。新增redis依賴 org.springframework.boot spring boot starter data redis 配置訊息監聽容器,把...

Redis如何過期key

過期redis key有兩種方式 被動和主動方式。被動過期 當一些客戶端要訪問這個key時,發現它已經過期,則刪除。顯然這樣做是不夠的,因為可能有些key不會被再次訪問。這種情況下也同樣要刪除這些過期的key。因此就有了主動過期的方式。主動過期 redis會定期,通過隨機的方式在設定了過期時間的ke...