redis key过期监听的实现示例


    目录
  • 1、pom.xml文件中添加redis依赖
  • 2、application.yml文件中添加redis相关配置
  • 3、redis配置类RedisConfig中注册Bean–RedisMessageListenerContainer
  • 4、自定义redis key过期监听器,继承KeyExpirationEventMessageListener类

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