Redis开启键空间通知实现超时通知的步骤详解

所属分类: 数据库 / Redis 阅读数: 1239
收藏 0 赞 0 分享

Redis部分设置

修改配置文件redis.conf(Windows为redis.windows.conf)

  • 打开该配置文件(位置取决于自己的安装位置),找到Event notification部分。
  • 将notify-keyspace-events Ex的注释打开或者添加该配置,其中E代表Keyevent,此种通知会返回key的名字,x代表超时事件。
  • 如果notify-keyspace-events ""配置没有被注释的话要注释掉,否则不会生效。
  • 保存后重启redis,一定要使用当前配置文件重启,例如src/redis-server redis.conf

SpringBoot部分设置

添加redis依赖

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

在全局配置文件application中添加redis配置

spring.redis.host = 39.105.145.179
spring.redis.port=6379
spring.redis.database=0
spring.redis.listen-pattern = __keyevent@0__:expired

listen-pattern填写超时时间,意思为springboot将监听redis发出的超时键空间通知。

创建listener

public class TopicMessageListener implements MessageListener {
 @Override
 public void onMessage(Message message, byte[] bytes) {
 byte[] body = message.getBody();
 byte[] channel = message.getChannel();
 System.out.println(new String(body));
 System.out.println(new String(channel));
 }
}

其中message为redis返回的通知,body为超时的key的名字,channel为超时事件

创建listener配置类

@Configuration
public class RedisListenerConfiguration {

 @Bean
 public RedisMessageListenerContainer getListenerContainer(RedisConnectionFactory connectionFactory){
 //创建连接容器
 RedisMessageListenerContainer container = new RedisMessageListenerContainer();
 //放入redis连接
 container.setConnectionFactory(connectionFactory);
 //写入需要被监听的类型,即超时监听
 Topic topic = new PatternTopic("__keyevent@0__:expired");
 container.addMessageListener(new TopicMessageListener(), topic);
 return container;
 }
}

之后当有键值过期时,redis会发送通知被上面的TopicMessageListener接收,在该类中即可调用对应的业务方法进行业务处理。

更多精彩内容其他人还在看

查看Redis内存信息的命令

Redis 是一个开源、高性能的Key-Value数据库,被广泛应用在服务器各种场景中。本文介绍几个查看Redis内存信息的命令,包括常用的info memory、info keyspace、bigkeys等。
收藏 0 赞 0 分享

redis批量删除key的步骤

本文分享最新版Redis批量删除key的方法,希望能帮到遇到同样问题的网友。
收藏 0 赞 0 分享

redis实现排行榜的简单方法

这篇文章主要给大家介绍了关于redis实现排行榜的简单方法,文中通过示例代码介绍的非常详细,对大家学习或者使用redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

谈谈Redis分布式锁的正确实现方法

这篇文章主要给大家介绍了关于Redis分布式锁的正确实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

基于redis实现token验证用户是否登陆

这篇文章主要为大家详细介绍了基于redis实现token验证用户是否登陆,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

使用Redis实现延时任务的解决方案

这篇文章主要介绍了使用Redis实现延时任务的解决方案,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Redis全量复制与部分复制示例详解

这篇文章主要给大家介绍了关于Redis全量复制与部分复制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis爬虫具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

基于redis实现定时任务的方法详解

这篇文章主要给大家介绍了基于redis实现定时任务的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用redis具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

详解redis desktop manager安装及连接方式

这篇文章主要介绍了redis desktop manager安装及连接方式,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Redis集群下过期key监听的实现代码

这篇文章主要介绍了Redis集群下过期key监听的实现代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多