当前位置:   article > 正文

Redis数据失效监听_redis集群 redismessagelistenercontainer 没监听到

redis集群 redismessagelistenercontainer 没监听到

一、配置Redis开启

打开conf/redis.conf 文件,添加参数:notify-keyspace-events Ex

二、验证配置

  • 步骤一:进入redis客户端:redis-cli
  • 步骤二:执行 CONFIG GET notify-keyspace-events ,如果有返回值证明配置成功,如果没有执行步骤三
  • 步骤三:执行CONFIG SET notify-keyspace-events "Ex",再查看步骤二是否有值

三、两个类

  1. package com.ciih.autopaddleGetway.config.redis;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.data.redis.connection.RedisConnectionFactory;
  5. import org.springframework.data.redis.listener.RedisMessageListenerContainer;
  6. import javax.annotation.Resource;
  7. @Configuration
  8. public class RedisConfig {
  9. @Resource
  10. private RedisConnectionFactory redisConnectionFactory;
  11. @Resource
  12. private RedisKeyExpirationListener redisExpiredListener;
  13. @Bean
  14. public RedisMessageListenerContainer redisMessageListenerContainer() {
  15. RedisMessageListenerContainer redisMessageListenerContainer = new RedisMessageListenerContainer();
  16. redisMessageListenerContainer.setConnectionFactory(redisConnectionFactory);
  17. //监听所有key的过期事件
  18. redisMessageListenerContainer.addMessageListener(redisExpiredListener, redisExpiredListener.getTopic());
  19. return redisMessageListenerContainer;
  20. }
  21. }

 

  1. package com.ciih.autopaddleGetway.config.redis;
  2. import lombok.Data;
  3. import org.springframework.data.redis.connection.Message;
  4. import org.springframework.data.redis.connection.MessageListener;
  5. import org.springframework.data.redis.listener.PatternTopic;
  6. import org.springframework.stereotype.Component;
  7. @Data
  8. @Component
  9. public class RedisKeyExpirationListener implements MessageListener {
  10. //监听的主题(只监听redis数据库1,如果要监听redis所有的库,把1替换为*)
  11. public final PatternTopic topic = new PatternTopic("__keyevent@1__:expired");
  12. /**
  13. * Redis失效事件 key
  14. *
  15. * @param message
  16. * @param pattern
  17. */
  18. @Override
  19. public void onMessage(Message message, byte[] pattern) {
  20. String expiraKey = message.toString();
  21. System.out.println(expiraKey + "触发了失效事件!!!!");
  22. System.out.println();
  23. }
  24. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/948818
推荐阅读
相关标签
  

闽ICP备14008679号