zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

Redis 实现 详解 开启 步骤 空间 超时 通知
2023-06-13 09:19:50 时间
打开该配置文件(位置取决于自己的安装位置),找到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键空间通知内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Redis开启键空间通知实现超时通知的步骤详解