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过期监听内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
将音频文件转二进制分包存储到Redis的实现方法(奇淫技巧操作)
这篇文章主要介绍了将音频文件转二进制分包存储到Redis的实现方法(奇淫技巧操作),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-07-07
最新评论