首页 > 数据库 >Redis开启过期监听

Redis开启过期监听

时间:2023-08-25 14:44:55浏览次数:34  
标签:RedisMessageListenerContainer RedisKeyExpirationListener container 过期 Redis publ

1.开启过期通知配置

默认 notify-keyspace-events "" 修改为:notify-keyspace-events Ex

2.增加监听类

public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

  public RedisKeyExpirationListener(
      RedisMessageListenerContainer listenerContainer) {
    super(listenerContainer);
  }

  @Override
  public void onMessage(Message message, byte[] pattern) {
    String expireKey = message.toString();
    System.out.println("过期key:" + expireKey);
  }
}

@Configuration
public class RedisListenerConfig {

  @Autowired
  private RedisConnectionFactory redisConnectionFactory;

  @Bean
  public RedisMessageListenerContainer container() {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(redisConnectionFactory);
    return container;
  }

  @Bean
  public RedisKeyExpirationListener keyExpirationListener() {
    return new RedisKeyExpirationListener(this.container());
  }
}

3.执行命令

set name zhangsan
expire name 2    //设置2秒过期

//通知效果如图 RedisKeyExpirationListener.onmessage

标签:RedisMessageListenerContainer,RedisKeyExpirationListener,container,过期,Redis,publ
From: https://www.cnblogs.com/hopeway-shaon/p/17656872.html

相关文章

  • Redis如何批量删除指定前缀的key
    批量删除指定前缀的Key有两中方法,一种是借助redis-cli,另一种是通过SCAN命令来遍历所有匹配前缀的key,并使用DEL命令逐个删除它们。redis-cli使用Redis自带的redis-cli命令行工具,你可以通过以下方式批量删除指定前缀的key:redis-cliKEYS"your_prefix*"|xargsredis......
  • springboot整合redis回滚
    1:添加依赖2:yml中配置连接,如:host,password,port3:@autowired注解注入Redistemplate调用方法生成对象 为了方便公司开发,一般会对数据进行序列化存储,这时需要创建配置类进行全局设置packagecom.example.config;importcom.fasterxml.jackson.annotation.JsonAutoDetect;importco......
  • 过滤器| 拦截器| 监听器的区别与使用
    骑士李四记录:1.过滤器(Filter):过滤器依赖于servlet容器。在实现上基于函数回调。几乎可以对所有请求进行过滤。缺点是一个过滤器实例只能在容器初始化时调用一次。2.拦截器(Interceptor)拦截器依赖于web框架,在SpringMVC中依赖于SpringMVC框架。实现上基于java反射机制,属于面向切......
  • vue监听对象属性值发生变化
    监听对象属性object里面属性值的变化。exportdefault{data(){return{object:{username:'',password:''}}}} 方法一:直接根据watch来监听。exportdefault{data(){......
  • redis实现用于限制非法登录
    redis实现用于限制非法登录次数为5次,锁定10分钟,并设置登录连接超时时间为10分钟要使用Redis实现限制非法登录次数、锁定和设置登录连接超时时间,可以结合Redis的计数器(counter)、设置过期时间(expire)和获取剩余有效时间(ttl)的功能。下面是一个示例的Java代码,使用Redis来实现这......
  • Redis:redis启停
    学习自:《Redis开发与运维》PDF47页1、常规用法开启:redis-server redis.conf&完整版:/安装目录/bin/redis-server/安装目录/bin/redis.conf&/usr/local/redis/bin/redis-server/usr/local/redis/redis.conf&关闭:/安装目录/bin/redis-clishutdown  2、启......
  • Docker 安装Redis 无法使用配置文件设置密码问题
    背景最近开发需要使用各种组件,如果都到开发机上安装,会占用电脑资源较多。所以使用docker容器来安装这些组件。例如redis、mongodb、mysql、rabitmq、elasticsearch等等。遇到的问题用edis官方镜像启动容器后,发现没有加载配置文件。解决方案1.redis镜像拉下来......
  • CentOS7.9搭建开发环境(Java、MySQL、Nginx、Redis)
    系统使用的阿里云CentOS7.964位SCC版。先安装个文件上传下载工具lrzsz,xshell登录终端,运行下面的命令:yuminstall-ylszrz 这是因为yum源的问题,需要修改yum配置。执行以下命令:cd/etc/yum.repos.dmvCentOS-Base.repoCentOS-Base.repo.backupwgethttp://mirrors.......
  • Docker下搭建Redis集群
    一、Redis集群方案的简单介绍Redis集群的方案一般分为三种:哈希取余分区一致性哈希算法分区哈希槽分区(本文介绍的就是这种) 1、哈希取余分区:优点:简单粗暴,只要提前预估好数据量,然后规划好节点,例如:3台、30台、300台节点,就能保证未来一段时间内的数据支撑。 缺点:事先规......
  • Springboot K8s Job 一次性任务 如何禁用端口监听
    问题:SpringBoot一次性任务执行时,也会默认监听服务端口,当使用k8sjob运行时,可能多个pod执行存在端口冲突解决办法:命令行禁用SpringBoot一次性任务启动时端口占用java-cp./XXX-Dspring.config.location=/home/XXXX.propertiesorg.springframework.boot.loader.Properties......