監聽過期key,其實同redis的作為中介軟體差不多.具體使用跟業務來,
注意,redis過期的key並不是立馬過期刪除的,具體參見:
首先需要配置keyexpirationlistenercontainer對應的bean;
@bean
//key過期監聽,指定資料庫
redismessagelistenercontainer keyexpirationlistenercontainer(redismessagelistener listener)
具體的patterntopic配置有很多,我大概看了下,常用的就是"__keyevent@" + redisdb + "__:expired"
監聽指定資料庫的key過期.
然後還要自己寫個listener,即可以實現messagelistener,也可以繼承messagelisteneradapter都可以,只監聽key過期都可以沒啥具體區別,繼承的話主要是使用redis作為中介軟體,用來發布訂閱使用的多:
package net.rdd.listener;
import org.slf4j.logger;
import org.slf4j.logge***ctory;
import org.springframework.data.redis.connection.message;
import org.springframework.data.redis.connection.messagelistener;
import org.springframework.data.redis.listener.adapter.messagelisteneradapter;
import org.springframework.data.redis.serializer.redisserializer;
import org.springframework.data.redis.serializer.stringredisserializer;
import org.springframework.stereotype.component;
@component
public
class
redismessagelistener
extends
messagelisteneradapter
}
注意在redis配置檔案中注意的:
注意將下面預設的注釋掉.
然後window啟動指定對應的配置檔案,否則會使用預設的.版本一定要注意3.0以上
redis-server.exe redis.windows.conf
即可
redis的版本也有要求,配置也需要改一下:
具體配置原始碼參見我的另外一篇部落格:
Redis的過期策略
我們都知道,redis是key value資料庫,我們可以設定redis中快取的key的過期時間。redis的過期策略就是指當redis中快取的key過期了,redis如何處理。過期策略通常有以下三種 定時過期 每個設定過期時間的key都需要建立乙個定時器,到過期時間就會立即清除。該策略可以立即清除...
redis的過期策略
什麼是redis,為啥用快取?redis是用記憶體當快取的。redis主要是基於記憶體來進行高效能 高併發的讀寫操作的。記憶體是有限的,比如redis就只能用10個g,你一直往裡面寫資料,一直寫一直寫最後10個g都用的差不多了,你繼續寫會發生什麼?當然會乾掉一些的資料了就保留10個g的資料。那red...
redis過期策略
1 noeviction 一旦記憶體滿則返回錯誤 2 allkeys lru 對所有的key進行lru 3 volatile lru 只對設定了過期的key進行lru 預設的方式 4 allkeys random 隨機剔除乙個key 5 volatile random 對設定過期的key進行隨機剔除...