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

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

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

一. 開(kāi)啟Redis key過(guò)期提醒

  • 方式一:修改配置文件

    redis.conf

# 默認(rèn) notify-keyspace-events ""
notify-keyspace-events Ex
  • 方式二:命令行開(kāi)啟
CONFIG SET notify-keyspace-events Ex
CONFIG GET notify-keyspace-events

二. notify-keyspace-events

notify-keyspace-events 選項(xiàng)的默認(rèn)值為空

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

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

三. Coding

  • 初始化一個(gè)Spring Boot項(xiàng)目

  • 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>
  • 定義配置類(lèi)`RedisListenerConfig
@Configuration
public class RedisListenerConfig {

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

}
  • 定義監(jiān)聽(tīng)器 實(shí)現(xiàn)KeyExpirationEventMessageListener接口
    查看源碼發(fā)現(xiàn),該接口監(jiān)聽(tīng)所有db的過(guò)期事件keyevent@*:expired"定義Status1ExpirationListener監(jiān)聽(tīng)狀態(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īng)狀態(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實(shí)現(xiàn)監(jiān)聽(tīng)Redis key失效事件的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot監(jiān)聽(tīng)Redis key的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • IntelliJ IDEA中如何構(gòu)建Spring Boot的項(xiàng)目

    IntelliJ IDEA中如何構(gòu)建Spring Boot的項(xiàng)目

    這篇文章主要介紹了IntelliJ IDEA中如何構(gòu)建Spring Boot的項(xiàng)目問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java 關(guān)鍵字super詳解及用法

    java 關(guān)鍵字super詳解及用法

    這篇文章主要介紹了java 關(guān)鍵字super詳解及用法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Mybatis初始化知識(shí)小結(jié)

    Mybatis初始化知識(shí)小結(jié)

    Mybatis的初始化過(guò)程就是加載自己運(yùn)行時(shí)所需要的配置信息的過(guò)程,這篇文章主要介紹了Mybatis初始化知識(shí)小結(jié),需要的朋友可以參考下
    2021-10-10
  • Spring Boot中使用RabbitMQ 生產(chǎn)消息和消費(fèi)消息的實(shí)例代碼

    Spring Boot中使用RabbitMQ 生產(chǎn)消息和消費(fèi)消息的實(shí)例代碼

    本文介紹了在SpringBoot中如何使用RabbitMQ進(jìn)行消息的生產(chǎn)和消費(fèi),詳細(xì)闡述了RabbitMQ中交換機(jī)的作用和類(lèi)型,包括直連交換機(jī)、主題交換機(jī)、扇出交換機(jī)和頭交換機(jī),并解釋了各自的消息路由機(jī)制,感興趣的朋友一起看看吧
    2024-10-10
  • Java通過(guò)HttpClient進(jìn)行HTTP請(qǐng)求的代碼詳解

    Java通過(guò)HttpClient進(jìn)行HTTP請(qǐng)求的代碼詳解

    Apache?HttpClient是一個(gè)功能強(qiáng)大且廣泛使用的Java庫(kù),它提供了方便的方法來(lái)執(zhí)行HTTP請(qǐng)求并處理響應(yīng)。本文將介紹如何使用HttpClient庫(kù)進(jìn)行HTTP請(qǐng)求,包括GET請(qǐng)求、POST請(qǐng)求、添加參數(shù)和請(qǐng)求體、設(shè)置請(qǐng)求頭等操作,需要的朋友可以參考下
    2023-05-05
  • Java調(diào)用Shell命令的方法

    Java調(diào)用Shell命令的方法

    這篇文章主要介紹了Java調(diào)用Shell命令的方法,實(shí)例分析了java調(diào)用shell命令的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • SpringBoot3整合Mybatis完整版實(shí)例

    SpringBoot3整合Mybatis完整版實(shí)例

    本文詳細(xì)介紹了SpringBoot3整合MyBatis的完整步驟,包括添加數(shù)據(jù)庫(kù)驅(qū)動(dòng)和MyBatis依賴(lài)、配置數(shù)據(jù)源和MyBatis、創(chuàng)建表和Bean類(lèi)、編寫(xiě)Mapper接口和XML文件、創(chuàng)建Controller類(lèi)以及配置掃描包,通過(guò)這些步驟,可以實(shí)現(xiàn)SpringBoot3與MyBatis的成功整合,并進(jìn)行功能測(cè)試
    2025-01-01
  • Spring中Properties的配置方式

    Spring中Properties的配置方式

    這篇文章主要介紹了Spring中Properties的配置方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • Java?NIO緩沖區(qū)Buffer基礎(chǔ)教程示例

    Java?NIO緩沖區(qū)Buffer基礎(chǔ)教程示例

    這篇文章主要介紹了Java?NIO緩沖區(qū)Buffer基礎(chǔ)教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • 在Java中輕松使用工廠設(shè)計(jì)模式介紹

    在Java中輕松使用工廠設(shè)計(jì)模式介紹

    這篇文章主要介紹了在Java中輕松使用工廠設(shè)計(jì)模式介紹,工廠設(shè)計(jì)模式或工廠方法設(shè)計(jì)模式是一種廣泛使用且易于理解的設(shè)計(jì)模式,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,感興趣的朋友可以參考一下
    2022-09-09

最新評(píng)論