Login
网站首页 > 文章中心 > 其它

springboot使用redis的keyspace_notifications_实现定时通知

作者:小编 更新时间:2023-10-19 11:35:23 浏览量:441人看过

springboot使用redis的keyspace_notifications_实现定时通知-图1

简单定时任务解决方案:使用redis的keyspace notifications(键失效后通知事件)
需要注意此功能是在redis 2.8版本以后推出的,所以呢你服务器上的reids最少要是2.8版本以上;

1.开启redis key过期提醒

修改redis相关事件配置.找到redis配置文件redis.conf,查看"notify-keyspace-events"的配置项,如果没有,添加"notify-keyspace-events Ex",如果有值,添加Ex,相关参数说明如下:

K:keyspace事件,事件以__keyspace@__为前缀进行发布;         
E:keyevent事件,事件以__keyevent@__为前缀进行发布;         
g:一般性的,非特定类型的命令,比如del,expire,rename等;        
$:字符串特定命令;         
l:列表特定命令;         
s:集合特定命令;         
h:哈希特定命令;         
z:有序集合特定命令;         
x:过期事件,当某个键过期并删除时会产生该事件;         
e:驱逐事件,当某个键因maxmemore策略而被删除时,产生该事件;         
A:g$lshzxe的别名,所以呢"AKE"意味着所有事件.

     
    
        org.springframework.boot
        spring-boot-starter-data-redis
    

@Configuration
public class RedisTimerConfiguration {

private Logger logger = LoggerFactory.getLogger(RedisTimerConfiguration.class);
private RedisConnectionFactory redisConnectionFactory;
public RedisMessageListenerContainer redisMessageListenerContainer() {
    RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
    return redisMessageListenerContainer;
}
}
@Component
public class RedisTask extends KeyExpirationEventMessageListener {

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章