Spring boot 监听redis key 过期
2022/4/27 19:12:44
本文主要是介绍Spring boot 监听redis key 过期,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.第一步,修改redis配置文件内容
notify-keyspace-events "Ex"
2.项目导入redis依赖
<!-- Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
3.添加配置application.yml
spring: redis: # 地址 host: 127.0.0.1 # 端口,默认为6379 port: 6370 # 密码 password: root # 连接超时时间 timeout: 10s lettuce: pool: # 连接池中的最小空闲连接 min-idle: 0 # 连接池中的最大空闲连接 max-idle: 8 # 连接池的最大数据库连接数 max-active: 8 # #连接池最大阻塞等待时间(使用负值表示没有限制) max-wait: -1ms
4.配置监听代码
public class KeyExpiredListener extends KeyExpirationEventMessageListener { private static final Logger LOGGER = LoggerFactory.getLogger(KeyExpiredListener.class); public KeyExpiredListener(RedisMessageListenerContainer listenerContainer) { super(listenerContainer); } @Override public void onMessage(Message message, byte[] pattern) { String channel = new String(message.getChannel(),StandardCharsets.UTF_8); //过期的key String key = new String(message.getBody(),StandardCharsets.UTF_8); LOGGER.info("redis key 过期:pattern={},channel={},key={}",new String(pattern),channel,key); } }
5.配置配置文件代码
@Configuration public class RedisConfiguration { @Autowired private RedisConnectionFactory redisConnectionFactory; @Bean public RedisMessageListenerContainer redisMessageListenerContainer() { RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer(); redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory); return redisMessageListenerContainer; } @Bean public KeyExpiredListener keyExpiredListener() { return new KeyExpiredListener(this.redisMessageListenerContainer()); } }
这篇关于Spring boot 监听redis key 过期的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!