首先啟用
登陸redis-cli,輸入命令:
config set notify-keyspace-events ex
訂閱的key
__keyevent@__:expired
這個格式是固定的,db代表的是資料庫的編號,由於訂閱開啟之後這個庫的所有key過期時間都會被推送過來,所以最好單獨使用乙個資料庫來進行隔離。可以使用redis來處理定時任務一種思路。
1.啟用redis通知功能,並訂閱過期的key,等待接收過期的key相關資料
2.設定鍵值對及過期時間
3.步驟2設定5秒過期時間後,步驟1視窗接收到過期的key test
spring中訂閱redis鍵值過期訊息通知
<
bean
id
="messagelistener"
class
="org.springframework.data.redis.listener.adapter.messagelisteneradapter"
>
<
constructor-arg
>
<
bean
class
="com.xlhy.new_agent.controller.defaultmessagedelegate"
/>
constructor-arg
>
bean
>
<
bean
id
="rediscontainer"
class
="org.springframework.data.redis.listener.redismessagelistenercontainer"
>
<
property
name
="connectionfactory"
ref
="jedisconnectionfactory"
/>
<
property
name
="messagelisteners"
>
<
map
>
<
entry
key-ref
="messagelistener"
>
<
list
>
<
bean
class
="org.springframework.data.redis.listener.channeltopic"
>
<
constructor-arg
value
="__keyevent@0__:expired"
/>
bean
>
list
>
entry
>
map
>
property
>
bean
>
//訂閱過期key,監聽過期key
public class
defaultmessagedelegate }
Redis Key過期通知
概述 鍵空間通知使得客戶端可以通過訂閱頻道或模式,來接收那些以某種方式改動了 redis 資料集的事件。如redis資料庫中鍵的過期事件也是通過訂閱功能實現。本文主要基於azure paas redis演示相關功能的具體實現。配置因為開啟鍵空間通知功能需要消耗一些 cpu 所以在預設配置下,該功能處...
redis過期策略
1 noeviction 一旦記憶體滿則返回錯誤 2 allkeys lru 對所有的key進行lru 3 volatile lru 只對設定了過期的key進行lru 預設的方式 4 allkeys random 隨機剔除乙個key 5 volatile random 對設定過期的key進行隨機剔除...
redis過期時間
在redis中,可以給乙個鍵設定過期時間,等時間到了以後,該鍵會被自動刪除。這個機制經常被用來儲存驗證碼等有一定時效性的東西,資料的有效期過了以後,就會被自動刪除以節省記憶體空間。跟過期相關的命令有三個,分別是expire persist和ttl,用法如下 來看個簡單的例子 0.1 6379 set...