redis key过期监听的实现示例
目录
- 1、pom.XML文件中添加Redis依赖
- 2、application.yml文件中添加redis相关配置
- 3、redis配置类RedisConfig中注册Bean–RedisMessageListenerContainer
- 4、自定义redis key过期监听器,继承KeyExhttp://www.devze.compirationEventMessageListener类
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过期监听器,继承KeyEwww.devze.comxpirationEventMessageListener类
@Component public class RedisKeyExpirationListener extends KeyhmqyhTyExpirationEventMessageListener { @Autowired private StringRedisTemplate stringRedisTemplate; public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) { super(listenerContainer); } @Override public void onMessage(Message messaghmqyhTye, byte[] pattern) { //注意:只能获取失效的key值,获取不到key对应的value值的。 String expireKey = message.toString(); try { if (!StringUtils.isEmpty(expireKey)) { //具体处理逻辑...... 编程 } } catch (Exception e) { e.printStackTrace(); } } }
到此这篇关于redis key过期监听的解决方法的文章就介绍到这了,更多相关redis key过期监听内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论