赞
踩
一、配置Redis开启
打开conf/redis.conf 文件,添加参数:notify-keyspace-events Ex
二、验证配置
三、两个类
- package com.ciih.autopaddleGetway.config.redis;
-
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
- import org.springframework.data.redis.listener.RedisMessageListenerContainer;
-
- import javax.annotation.Resource;
-
- @Configuration
- public class RedisConfig {
-
- @Resource
- private RedisConnectionFactory redisConnectionFactory;
- @Resource
- private RedisKeyExpirationListener redisExpiredListener;
-
- @Bean
- public RedisMessageListenerContainer redisMessageListenerContainer() {
- RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
- redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
- //监听所有key的过期事件
- redisMessageListenerContainer.addMessageListener(redisExpiredListener, redisExpiredListener.getTopic());
- return redisMessageListenerContainer;
- }
-
- }

- package com.ciih.autopaddleGetway.config.redis;
-
- import lombok.Data;
- import org.springframework.data.redis.connection.Message;
- import org.springframework.data.redis.connection.MessageListener;
- import org.springframework.data.redis.listener.PatternTopic;
- import org.springframework.stereotype.Component;
-
- @Data
- @Component
- public class RedisKeyExpirationListener implements MessageListener {
- //监听的主题(只监听redis数据库1,如果要监听redis所有的库,把1替换为*)
- public final PatternTopic topic = new PatternTopic("__keyevent@1__:expired");
-
- /**
- * Redis失效事件 key
- *
- * @param message
- * @param pattern
- */
- @Override
- public void onMessage(Message message, byte[] pattern) {
- String expiraKey = message.toString();
- System.out.println(expiraKey + "触发了失效事件!!!!");
- System.out.println();
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。