当前位置: 首页 > 后端技术 > Java

java监听redis过期事件

时间:2023-04-01 20:17:38 Java

项目中有些场景需要监听redis中的过期事件,比如订单过期等场景。以Springboot为例,大致记下代码。1、引用redis的包org.springframework.bootspring-boot-starter-data-redis2、配置redis监听器importorg.springframework.context.annotation.Bean;导入org.springframework.context.annotation.Configuration;导入org.springframework.data.redis.connection.RedisConnectionFactory;导入org.springframework.data.redis.listener.RedisMessageListenerContainer;@Configurationpublic类RedisListenerConfig{@BeanRedisMessageListenerContainer容器(RedisConnectionFactoryconnectionFactory){RedisMessageListenerContainer容器=newRedisMessageListenerContainer();container.setConnectionFactory(connectionFactory);返回容器;}}3、创建redis过期监听@ComponentpublicclassRedisKeyExpirationListenerextendsKeyExpirationEventMessageListener{@OverridepublicvoidonMessage(Messagemessage,byte[]pattern){//过期键StringexpiredKey=message.toString();System.out.println(expiredKey+"expired");//接下来可以通过redis工具获取值或者执行业务逻辑}publicRedisKeyExpirationListener(RedisMessageListenerContainerredisMessageListenerContainer){super(redisMessageListenerContainer);}}4.测试是否可行这时候可以进行api测试,设置过期事件为30秒,看key过期后是否会正常监听key5、注意事项注意:监听器可以监听redisredis配置文件中对过期key有要求。必须在redis配置文件中设置才能监听key过期事件。进入目录找到配置文件。配置如下:个人博客:https://www.51bishe.site