欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot監(jiān)聽Redis key失效事件的實現(xiàn)代碼

 更新時間:2024年02月20日 11:11:11   作者:是阿洋啊  
這篇文章給大家介紹了SpringBoot實現(xiàn)監(jiān)聽Redis key失效事件的方法,文中通過代碼示例給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下

一. 開啟Redis key過期提醒

  • 方式一:修改配置文件

    redis.conf

# 默認 notify-keyspace-events ""
notify-keyspace-events Ex
  • 方式二:命令行開啟
CONFIG SET notify-keyspace-events Ex
CONFIG GET notify-keyspace-events

二. notify-keyspace-events

notify-keyspace-events 選項的默認值為空

notify-keyspace-events 的參數(shù)可以是以下字符的任意組合, 它指定了服務(wù)器該發(fā)送哪些類型的通知。

字符發(fā)送的通知
K鍵空間通知,所有通知以 keyspace@ 為前綴
E鍵事件通知,所有通知以 keyevent@ 為前綴
gDEL 、 EXPIRE 、 RENAME 等類型無關(guān)的通用命令的通知
$字符串命令的通知
l列表命令的通知
s集合命令的通知
h哈希命令的通知
z有序集合命令的通知
x過期事件:每當有過期鍵被刪除時發(fā)送
e驅(qū)逐(evict)事件:每當有鍵因為 maxmemory 政策而被刪除時發(fā)送
A參數(shù) g$lshzxe 的別名

三. Coding

  • 初始化一個Spring Boot項目

  • pom.xml

<dependencies>
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-redis</artifactId>
	</dependency>
	<dependency>
		<groupId>org.projectlombok</groupId>
		<artifactId>lombok</artifactId>
	</dependency>
</dependencies>
  • 定義配置類`RedisListenerConfig
@Configuration
public class RedisListenerConfig {

	@Bean
	RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
		RedisMessageListenerContainer container = new RedisMessageListenerContainer();
		container.setConnectionFactory(connectionFactory);
		return container;
	}

}
  • 定義監(jiān)聽器 實現(xiàn)KeyExpirationEventMessageListener接口
    查看源碼發(fā)現(xiàn),該接口監(jiān)聽所有db的過期事件keyevent@*:expired"定義Status1ExpirationListener監(jiān)聽狀態(tài)1到期
@Slf4j
@Component
public class Status1ExpirationListener extends KeyExpirationEventMessageListener {

	public Status1ExpirationListener(RedisMessageListenerContainer listenerContainer) {
		super(listenerContainer);
	}

	@Autowired
	private StringRedisTemplate stringRedisTemplate;

	@Override
	public void onMessage(Message message, byte[] pattern) {
		// message.toString()可以獲取失效的key
		String expiredKey = message.toString();
		// 業(yè)務(wù)處理
	}

}

定義Status2ExpirationListener監(jiān)聽狀態(tài)2到期

@Slf4j
@Component
public class Status2ExpirationListener extends KeyExpirationEventMessageListener {

	public Status2ExpirationListener(RedisMessageListenerContainer listenerContainer) {
		super(listenerContainer);
	}

	@Override
	public void onMessage(Message message, byte[] pattern) {
		// message.toString()可以獲取失效的key
		String expiredKey = message.toString();
		// 業(yè)務(wù)處理
	}

}

四. 參考

Redis keyspace notifications

以上就是SpringBoot實現(xiàn)監(jiān)聽Redis key失效事件的示例代碼的詳細內(nèi)容,更多關(guān)于SpringBoot監(jiān)聽Redis key的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Java高效將CSV轉(zhuǎn)換為Excel的實現(xiàn)方法

    使用Java高效將CSV轉(zhuǎn)換為Excel的實現(xiàn)方法

    在日常的數(shù)據(jù)處理和分析工作中,CSV文件因其輕量級和通用性而廣受歡迎,然而,當我們需要進行復(fù)雜的數(shù)據(jù)分析或利用Excel強大的圖表和公式功能時,將CSV數(shù)據(jù)轉(zhuǎn)換為Excel文件就成了開發(fā)者們常見的需求和痛點,本文將深入探討如何利用Java高效地將CSV轉(zhuǎn)換為Excel
    2025-08-08
  • Maven發(fā)布Jar包中文亂碼解決方法

    Maven發(fā)布Jar包中文亂碼解決方法

    這篇文章主要介紹了Maven發(fā)布Jar包中文亂碼解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Java插入修改刪除數(shù)據(jù)庫數(shù)據(jù)的基本方法

    Java插入修改刪除數(shù)據(jù)庫數(shù)據(jù)的基本方法

    這篇文章主要介紹了Java插入修改刪除數(shù)據(jù)庫數(shù)據(jù)的基本方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Java中如何靈活獲取excel中的數(shù)據(jù)

    Java中如何靈活獲取excel中的數(shù)據(jù)

    這篇文章主要給大家介紹了關(guān)于Java中如何靈活獲取excel中的數(shù)據(jù),在日常工作中我們常常會進行文件讀寫操作,除去我們最常用的純文本文件讀寫,更多時候我們需要對Excel中的數(shù)據(jù)進行讀取操作,需要的朋友可以參考下
    2023-07-07
  • java啟動線程的3種方式對比分析

    java啟動線程的3種方式對比分析

    這篇文章主要為大家對比分析了java啟動線程的3種方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 解決ObjectMapper.convertValue() 遇到的一些問題

    解決ObjectMapper.convertValue() 遇到的一些問題

    這篇文章主要介紹了解決ObjectMapper.convertValue() 遇到的一些問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 普通對象使用spring容器中的對象的實現(xiàn)方法

    普通對象使用spring容器中的對象的實現(xiàn)方法

    這篇文章主要介紹了普通對象使用spring容器中的對象的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 每天學(xué)Java!一分鐘了解JRE與JDK

    每天學(xué)Java!一分鐘了解JRE與JDK

    每天學(xué)Java!一分鐘了解JRE與JDK,什么是JRE?什么是JDK?什么是JVM?相信通過本文大家都會有所了解,感興趣的小伙伴們可以參考一下
    2016-07-07
  • 使用java執(zhí)行定時任務(wù)示例

    使用java執(zhí)行定時任務(wù)示例

    這篇文章主要介紹了使用java執(zhí)行定時任務(wù)示例,需要的朋友可以參考下
    2014-04-04
  • Java中final,finally,finalize?有什么區(qū)別

    Java中final,finally,finalize?有什么區(qū)別

    這篇文章主要給大家分享的是?Java中final,finally,finalize?到底有什么區(qū)別,文章圍繞final,finally,finalize的相關(guān)資料展開詳細內(nèi)容,具有一定的參考的價值,需要的朋友可以參考一下
    2021-11-11

最新評論