java 监听 redis 过期事件

本文介绍了如何在Spring Boot应用中引入Redis依赖,并配置Redis监听容器来监听Redis消息。通过创建`RedisKeyExpirationListener`类实现过期key的监听,当key过期时,系统会输出相关信息。在测试阶段,可以设置API来验证key过期监听的可行性。注意,要确保Redis配置文件中启用了key过期事件监听。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 {
    //from fhadmin.cn
    @Bean
    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(connectionFactory);
        return container;
    }
}

复制代码

3、创建redis过期监听

复制代码

@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
    //from fhadmin.cn
    @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配java教程置文件里面设置能够监听到key过期事件,配置文件去目录下找,配置如下:

image-20210604235727511

---------------------------www.fhadmin.cn---------------------------------------自定义表单
28. 定义模版:拖拽左侧表单元素到右侧区域,编辑表单元素,保存表单模版
29. 表单模版:编辑维护表单模版,复制表单模版,修改模版类型,预览表单模版
30. 我的表单:选择表单模版,编辑表单规则,是否上传图片、附件、开启富文本、挂靠流程开关等
31. 表单数据:从我的表单进去可增删改查表单数据,修改表单规则
32. 挂靠记录:记录表单数据和流程实例ID关联记录,可删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值