当前位置:网站首页>【redis】redis之过期监听
【redis】redis之过期监听
2022-08-09 08:00:00 【Ctrl练习生-谢哥哥blog】
redis之过期监听
使用场景:在我们项目中,需要把支付超时的订单,更新状态并回退库存等操作。在这里,使用redis过期监听就能做到
↓↓↓下面上代码↓↓↓
首先需要redis监听生效就需要配置如下代码
yml文件

RedisListenerConfig.java
@Slf4j
@Configuration
public class RedisListenerConfig {
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory redisConnectionFactory) {
RedisMessageListenerContainer container = new RedisMessageListenerContainer();
container.setConnectionFactory(redisConnectionFactory);
log.info("redis监听配置生效");
return container;
}
}
使用
RedisKeyExpirationListener.java
@Slf4j
@Configuration
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
@Value("${spring.redis.database}")
private Integer redisDatabase;
private final RedisTemplate<String, String> redisTemplate;
public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer, RedisTemplate<String, String> redisTemplate) {
super(listenerContainer);
this.redisTemplate = redisTemplate;
}
@Override
public void onMessage(Message message, byte[] bytes) {
log.info("过期监听事件启动");
RedisSerializer<?> serializer = redisTemplate.getValueSerializer();
String channel = String.valueOf(serializer.deserialize(message.getChannel()));
// 获取过期的Key值
String body = String.valueOf(serializer.deserialize(message.getBody()));
// DB0 key过期监听
if (StrUtil.format("[email protected]{}__:expired", redisDatabase).equals(channel)) {
System.out.println("第" + redisDatabase + "个DB库的key过期,key:" + body);
}
}
}
我们测试一下

等待30秒…
结果如下

总结
如果觉得不错,可以点赞+收藏或者关注下博主。感谢阅读!
边栏推荐
猜你喜欢
随机推荐
EXCEL uses function joint debugging (find, mid, vlookup, xlookup)
实现弹簧柔性状态的2种方式 | Solidworks教程
[STL]stack与queue
Result consisted of more than one row
MySql作业练习题
The String class objects created by the JVM memory allocation and the difference between equals and = =
3安装及管理程序
Introduction to the Endpoint
账号和权限管理
One-click login server script
Operations in the database (syntax)
包子凑数----欧几里得+dp
弹性盒样式、移动端、VW适配、响应式布局
libtorch示例
3D软件开发工具HOOPS全套产品开发介绍 | HOOPS Visualize、HOOPS Publish
.net(三) 项目结构
浅谈Endpoint
2042. 检查句子中的数字是否递增
交换机基本原理与配置
Forest Program DFS + tanjar cactus









