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") ); } }