java监听redis过期事件
项目中有些场景需要监听 redis 中的过期事件,如订单过期等场景,以 Spring boot 为例,大致写下代码。
1、引用 redis 的包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2、配置 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; @Configuration public class RedisListenerConfig { @Bean RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); return container; } }
3、创建 redis 过期监听
@Component public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener { @Override public void onMessage(Message message, byte[] pattern) { // 过期 key String expiredKey = message.toString(); System.out.println(expiredKey + "过期了"); // 下面可以通过 redis 工具获取值或者执行业务逻辑 } public RedisKeyExpirationListener(RedisMessageListenerContainer redisMessageListenerContainer){super(redisMessageListenerContainer); } }
4、测试是否可行
这个时候你可以搞个 api 测试下,设置过期事件为 30 秒,看下当 key 过期时,是否会正常被监听到。
5、注意事项
注意:监听器能监听到 redis 中过期的 key 是有个要求的,必须在 redis 配置文件里面设置能够监听到 key 过期事件,配置文件去目录下找,配置如下:
EOF
本文作者:五香麻辣大白兔
本文链接:https://www.cnblogs.com/51bishe/p/15127627.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/51bishe/p/15127627.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!