redis過期通知

2021-08-10 20:40:50 字數 2594 閱讀 2613

首先啟用

登陸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...