项目中有些场景需要监听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;@Configurationpublic class RedisListenerConfig {@BeanRedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {RedisMessageListenerContainer container = new RedisMessageListenerContainer();container.setConnectionFactory(connectionFactory);return container;}}3、创建redis过期监听@Componentpublic class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {@Overridepublic void onMessage(Message message, byte[] pattern) {// 过期keyString expiredKey = message.toString();System.out.println(expiredKey + "过期了");// 下面可以通过redis工具获取值或者执行业务逻辑}public RedisKeyExpirationListener(RedisMessageListenerContainer redisMessageListenerContainer ){super(redisMessageListenerContainer);}}4、测试是否可行这个时候你可以搞个api测试下,设置过期事件为30秒,看下当key过期时,是否会正常被监听到 。
5、注意事项注意:监听器能监听到redis中过期的key是有个要求的,必须在redis配置文件里面设置能够监听到key过期事件,配置文件去目录下找,配置如下:

文章插图
【java监听redis的list是否有值 java监听redis过期事件】个人博客:https://www.51bishe.site
我的个人搭建的博客:https://www.51bishe.site大家可以多关注下,谢谢
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
