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

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键空间通知内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

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

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

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

  • redis键空间通知使用实现

    目录 导语 实现 在业务中使用 总结 导语 最近在开发一个定时活动,而且活动是多个场次的.这个是后就需要在活动开始的时候推送信息给客户端,结束的时候也要推送一次.简单的设计方案就是将配置缓存在redis,然后每隔一秒就轮询reids,获取配置信息,然后判断是不是到活动开始或者结束的时间点,然后推送给客户端. 但是,这里会有一个问题,如果没有到活动开始或结束的时间点,这里会造成很多无用的轮询操作.这个操作不但增大了对这个key的访问量,同时也会占用cpu,降低机器性能. redis在2.8.0版本

  • 使用redis实现延迟通知功能(Redis过期键通知)

    Redis 过期监听场景 业务中有类似等待一定时间之后执行某种行为的需求 , 比如 30 分钟之后关闭订单 . 网上有很多使用 Redis 过期监听的 Demo redis配置 把notify-keyspace-events Ex 这一行的注释打开 项目demo工程 项目结构如下图 maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apa

  • 大家都应该知道的Redis过期键与过期策略

    今天,我和大家分享一篇关于 Redis 有关过期键的内容,主要有四个内容: 如何设置过期键 如何取消设置的过期时间 过期键的过期策略是怎样的 RDB.AOF 和复制对过期键的处理又是怎样的 设置键的生存时间或过期时间 redis 一共有 4 个命令来设置键的生存时间(可以存活多久)或过期时间(什么时候被删除) expire <key> <ttl>:将 key 的生存时间设置为 ttl 秒 pexpire <key> <ttl>:将 key 的生存时间设置为

  • Redis中键的过期删除策略深入讲解

    如果一个键过期了,那么它什么时候会被删除呢? 这个问题有三种可能的答案,它们分别代表了三种不同的删除策略: 定时删除:在设置键的过期时间的同时,创建一个定时器( timer ). 让定时器在键的过期时间来临时,立即执行对键的删除操作. 惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键. 定期删除: 每隔一段时间,程序就对数据库进行一次检查,删除里面的过期键.至于要删除多少过期键,以及要检查多少个数据库, 则由算法决定

  • SpringAOP四种通知类型+环绕通知说明

    目录 一.四种常见的通知类型 注意 二.环绕通知 1.改动日志类 Logger.java 2.改动配置文件 分析 AOP机制之环绕通知的见解 其中有五个通知类型 SpringAOP的四种通知类型:前置通知.异常通知.后置通知.异常通知 一.四种常见的通知类型 给出 账户的业务层接口 IAccountService.java, 为了便于演示这四种通知类型,我们就只留下了一个方法. public interface IAccountService { void saveAccount(); } 给出

  • 解决Redis开启远程访问及密码问题

    Redis开启远程访问及密码,具体介绍如下所示: 一.开启远程访问 1.开放端口 firewall-cmd --zone=public --add-port=6379 firewall-cmd --zone=public --add-port=6379 --permanent 2.查看已开放端口 firewall-cmd --list-port 3.修改配置文件 vim redis.conf 将bind 127.0.0.1 注释或者改为bind 0.0.0.0 将protected-mode y

  • redis开启和禁用登陆密码校验的方法

    1. 开启登陆密码校验 在redis-cli命令行工具中执行如下命令: config set requirepass yourpassword 2. 禁用登陆密码校验 同上,需要在redis-cli中执行如下命令: config set requirepass "" 以上这篇redis开启和禁用登陆密码校验的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Redis中键和数据库通用指令详解

    目录 一.Redis键(key)通用指令 1.key基本操作 2.时效性控制 3.查询模式 4.其它操作 二.数据库通用指令 1.基本操作 2.相关操作 一.Redis键(key)通用指令 可以参考菜鸟教程:Redis 键命令用于管理 redis 的键 key特征:key是一个字符串,通过key获取redis中保存的数据. 1.key基本操作 命令 功能 del key 该命令用于在 key 存在时删除 key exists key 检查给定 key 是否存在 type key 返回 key 所

随机推荐