redis key过期监听的实现示例

 更新时间:2024年03月19日 09:05:43   作者:刘小僧  
在Redis中,我们可以为Key设置过期时间,当Key的过期时间到达后,Redis会自动将该Key标记为已失效,本文就来介绍一下redis key过期监听的实现示例,感兴趣的可以了解一下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

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过期监听内容请搜索程序员之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序员之家!

相关文章

  • 如何查看redis服务的版本

    如何查看redis服务的版本

    这篇文章主要介绍了如何查看redis服务的版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • redis cluster集群模式下实现批量可重入锁

    redis cluster集群模式下实现批量可重入锁

    本文主要介绍了使用redis cluster集群版所遇到的问题解决方案及redis可重入锁是否会有死锁的问题等,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • redis基本类型和使用方法详解

    redis基本类型和使用方法详解

    这篇文章主要介绍了redis基本类型和使用方法详解,需要的朋友可以参考下
    2020-02-02
  • Redis正确使用的十个技巧

    Redis正确使用的十个技巧

    Redis已经走过了很长的一段路,随之而来的一系列最佳实践,使得大多数人可以正确地使用Redis,下面我们将探索正确使用 Redis 的10个技巧。
    2015-10-10
  • Redis基础学习之管道机制详析

    Redis基础学习之管道机制详析

    这篇文章主要给大家介绍了关于Redis基础学习之管道机制的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Redis具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • Redis Cluster集群收缩主从节点详细教程

    Redis Cluster集群收缩主从节点详细教程

    集群收缩的源端就是要下线的主节点,目标端就是在线的主节点,这篇文章主要介绍了Redis Cluster集群收缩主从节点详细教程,需要的朋友可以参考下
    2021-11-11
  • redis事务常用操作详解

    redis事务常用操作详解

    在本篇文章里小编给大家分享了关于redis事务常用操作的相关知识点内容,有兴趣的朋友们可以跟着学习参考下。
    2019-07-07
  • redis连接被拒绝的解决方案

    redis连接被拒绝的解决方案

    这篇文章主要介绍了redis连接被拒绝的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 使用redis获取自增序列号实现方式

    使用redis获取自增序列号实现方式

    这篇文章主要介绍了使用redis获取自增序列号实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • 基于Redis实现延时队列的优化方案小结

    基于Redis实现延时队列的优化方案小结

    本文主要介绍了基于Redis实现延时队列的优化方案小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07

最新评论

?


http://www.vxiaotou.com