SpringBoot实现Redis失效监听事件—KeyExpirationEventMessageListener

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot实现Redis失效监听事件—KeyExpirationEventMessageListener相关的知识,希望对你有一定的参考价值。

参考技术A 使用场景:当redis某个key过期的时候,我们希望处理一些业务例如发消息或者取消订单等,当然也可以使用中间件mq来实现,之前的文章里有写rocketMq实现消息的通知和消费,这篇文章主要是用redis来实现

我们需要重写onMessage方法,当有key过期的时候这个方法可以获取获取的key,并处理自己的业务
如果我们是多台机器部署,那么我们还需要加锁操作,避免消息的重复消费,这里利用了stringRedisTemplate.opsForValue().setIfAbsent命令可以帮我们完成setnx加锁的操作,如果为空set返回true,如果不为空返回false,因为redis是单线程所以可以保证只消费一次,setIfAbsent同时要加上过期时间,注意redis版本过低的话可能没有这个方法

以上是关于SpringBoot实现Redis失效监听事件—KeyExpirationEventMessageListener的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot 监听Redis key过期回调

redis 超时失效key 的监听触发

10. Springboot整合Redis事件监听实现定时功能

redis过期key监听事件

SpringBoot监听器ApplicationListener的使用-监听ApplicationReadyEvent事件

Redis过期事件通知实现订单自动关闭