zoukankan      html  css  js  c++  java
  • redis过期事件监听

    1 修改 redis.conf配置文件:

    K Keyspace events, published with keyspace@ prefix事件
    E Keyevent events, published with keyevent@ prefix
    g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, …
    $ String commands
    l List commands
    s Set commands
    h Hash commands
    z Sorted set commands
    x Expired events (events generated every time a key expires)
    e Evicted events (events generated when a key is evicted for maxmemory)
    A Alias for g$lshzxe, so that the “AKE” string means all the events.
    redis.conf 的默认的配置是:notify-keyspace-events ""
    我们需要改为:notify-keyspace-events Ex
    即对应上面的键的过期事件。修改玩这个重启一下redis

    2 客户端来监听redis的过期事件:

    @Configuration
    public class RedisListenerConfig {
        @Bean
        RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
    
            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            return container;
        }
    }

    3.书写一个监听器

    @Slf4j
    @Component
    public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {
    
        public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
            super(listenerContainer);
        }
    
        @Override
        public void onMessage(Message message, byte[] pattern) {
            String expiredKey = message.toString();
           log.info("expiredKey========="+expiredKey);
        }

    4.查询方法中随便加了两个表中的不同id,一个30s,一个27s。

      redisUtil.set("UserId"+user.get(0).getId(),user.get(0).getId(),30);
      redisUtil.set("UserInfoId"+userInfo.get(0).getId(),userInfo.get(0).getId(),27);

    控制台输出:

    需要注意的是:
    过期监听消息中返回的是,过期的键的key值,是没有返回value的

  • 相关阅读:
    响应式笔记(1)
    javascript复制文章加版权声明代码
    div的水平和垂直居中
    javascript随机打乱数组
    javascript操作字符串的方法
    《Javascript高级程序设计》读书笔记(1-3章)
    一个将 footer 保持在底部的最好方法
    Python内置的字符串处理函数整理
    c c++怎么判断一个字符串中是否含有汉字
    shell的if判断
  • 原文地址:https://www.cnblogs.com/red-star/p/12557965.html
Copyright © 2011-2022 走看看