修改配置檔案 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...