package com.ruoyi.web.controller.service;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
import org.springframework.data.redis.listener.PatternTopic;
|
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
|
|
import javax.annotation.PostConstruct;
|
|
/**
|
* Redis 过期事件监听配置
|
*/
|
@Configuration
|
public class RedisListenerConfig {
|
@Autowired
|
private VisitorExpireListener visitorExpireListener;
|
|
@Autowired
|
private RedisMessageListenerContainer redisMessageListenerContainer;
|
|
/**
|
* 订阅 Redis 过期事件
|
* 监听所有 Key 的过期事件,在 VisitorExpireListener 中过滤
|
*/
|
@PostConstruct
|
public void init() {
|
// 订阅 __keyevent@0__:expired 频道(0 表示 db0)
|
// 注意:需要根据实际使用的数据库索引修改
|
redisMessageListenerContainer.addMessageListener(
|
visitorExpireListener,
|
new PatternTopic("__keyevent@0__:expired")
|
);
|
}
|
}
|