監聽Redis快取key過期

2021-10-19 21:17:09 字數 895 閱讀 9190

有些業務需要延遲一定時間後執行,比如訂單提交後15分鐘未支付就自動關閉,這裡只是舉個例子。我們可以通過監聽redis的key過期事件來實現這個功能。

新增redis依賴

org.springframework.boot

spring-boot-starter-data-redis

配置訊息監聽容器,把redis連線工廠放進去

@configuration

public class redislistenerconfig

}

繼承org.springframework.data.redis.listener.keyexpirationeventmessagelistener類,監聽過期事件。注意message裡的是失效的key,拿不到value。

@slf4j

@component

public class rediskeyexpirationlistener extends keyexpirationeventmessagelistener

/*** 針對 redis 資料失效事件,進行資料處理

* @param message key

* @param pattern pattern

*/@override

public void onmessage(message message, byte pattern) ", expiredkey);

super.onmessage(message, pattern);

}}

@component

public class timetasktest

}

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

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