redis key过期监听的实现示例

 更新时间:2024年03月19日 09:05:43   作者:刘小僧  
在Redis中,我们可以为Key设置过期时间,当Key的过期时间到达后,Redis会自动将该Key标记为已失效,本文就来介绍一下redis key过期监听的实现示例,感兴趣的可以了解一下

1、pom.xml文件中添加redis依赖

<!-- redis 缓存操作 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2、application.yml文件中添加redis相关配置

# redis 配置
redis:
  # 地址
  host: localhost
  # 端口,默认为6379
  port: 6379
  # 数据库索引
  database: 0
  # 密码
  password:
  # 连接超时时间
  timeout: 10s
  lettuce:
    pool:
      # 连接池中的最小空闲连接
      min-idle: 0
      # 连接池中的最大空闲连接
      max-idle: 8
      # 连接池的最大数据库连接数
      max-active: 8
      # #连接池最大阻塞等待时间(使用负值表示没有限制)
      max-wait: -1ms

3、redis配置类RedisConfig中注册Bean–RedisMessageListenerContainer

@Configuration
@EnableCaching
public class RedisConfig extends CachingConfigurerSupport
{
    
    /**
     * redis key 过期事件订阅需要
     * @param redisConnectionFactory
     * @return
     */
    @Bean
    public RedisMessageListenerContainer redisMessageListenerContainer(RedisConnectionFactory redisConnectionFactory) {
        RedisMessageListenerContainer container = new RedisMessageListenerContainer();
        container.setConnectionFactory(redisConnectionFactory);
        return container;
    }
}

4、自定义redis key过期监听器,继承KeyExpirationEventMessageListener类

@Component
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

    @Autowired
    private StringRedisTemplate stringRedisTemplate;

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

    @Override
    public void onMessage(Message message, byte[] pattern) {
        //注意:只能获取失效的key值,获取不到key对应的value值的。
        String expireKey = message.toString();
        try {
            if (!StringUtils.isEmpty(expireKey)) {
            	//具体处理逻辑......
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 到此这篇关于redis key过期监听的解决方法的文章就介绍到这了,更多相关redis key过期监听内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 生产redisson延时队列不消费问题排查解决

    生产redisson延时队列不消费问题排查解决

    这篇文章主要为大家介绍了生产redisson延时队列不消费问题排查解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Redis中的数据结构跳表详解

    Redis中的数据结构跳表详解

    跳表是一种基于并联的链表结构,用于在有序元素序列中快速查找元素的数据结构,本文给大家介绍Redis中的数据结构跳表,感兴趣的朋友跟随小编一起看看吧
    2024-06-06
  • redis击穿 雪崩 穿透超详细解决方案梳理

    redis击穿 雪崩 穿透超详细解决方案梳理

    这篇文章主要为大家介绍了Redis击穿穿透雪崩产生原因及解决思路的解决方案参考,有需要的朋友可以借鉴参考下,希望能够有所帮助祝大家多多进步
    2022-03-03
  • redis乐观锁与悲观锁的实战 

    redis乐观锁与悲观锁的实战 

    Redis提供了两种锁机制,即乐观锁和悲观锁。本文主要介绍了redis乐观锁与悲观锁的实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 关于Redis数据库入门详细介绍

    关于Redis数据库入门详细介绍

    大家好,本篇文章主要讲的是关于Redis数据库入门详细介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Redis使用ZSET实现消息队列使用小结

    Redis使用ZSET实现消息队列使用小结

    这篇文章主要介绍了Redis使用ZSET实现消息队列使用总结,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-03-03
  • 关于Redis持久化的深入探究

    关于Redis持久化的深入探究

    Redis持久化是将内存中的数据保存到磁盘,以防止数据丢失。Redis提供了两种持久化方式:RDB和AOF,本文将给大家详解介绍Redis持久化,感兴趣的同学可以跟着小编一起来学习
    2023-05-05
  • Redis连接错误的情况总结分析

    Redis连接错误的情况总结分析

    这篇文章主要给大家总结介绍了关于Redis连接错误的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Redis设置database不生效的解决方案

    Redis设置database不生效的解决方案

    最近在做redis缓存设置的时候,发现即使已经设置了database, 但是存数据的时候还是用的默认0数据库,所以本文就给大家介绍了Redis设置database不生效的解决方案,需要的朋友可以参考下
    2023-08-08
  • 将音频文件转二进制分包存储到Redis的实现方法(奇淫技巧操作)

    将音频文件转二进制分包存储到Redis的实现方法(奇淫技巧操作)

    这篇文章主要介绍了将音频文件转二进制分包存储到Redis的实现方法(奇淫技巧操作),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论