IT俱乐部 Redis redis key过期监听的实现示例

redis key过期监听的实现示例

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

org.springframework.bootspring-boot-starter-data-redis

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

本文收集自网络,不代表IT俱乐部立场,转载请注明出处。https://www.2it.club/database/redis/10611.html
上一篇
下一篇
联系我们

联系我们

在线咨询: QQ交谈

邮箱: 1120393934@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部