Redis Key过期通知,Jedis无效

时间:2016-12-19 19:23:04

标签: java redis jedis

我使用的是Jedis 2.9.0版本,我跟着

Redis Key expire notification with Jedis

但是当redis键到期时,不会调用Listener中的onPMessage方法。

在订阅者中我使用了

    jedis.psubscribe(new KeyExpiredListener(), "*");

当我运行服务器时

    jedis.set("notify", "test");
    jedis.expire("notify", 10);

但10秒后Redis键已过期但onPMessage未触发。

1 个答案:

答案 0 :(得分:2)

当密钥过期但(从the docs取得)时,才会触发过期密钥空间通知:

  
      
  • 当命令访问密钥并且发现它已过期时。
  •   
  • 通过后台系统在后台逐步查找过期的密钥,以便能够收集从不的密钥   访问。
  •   

此外,您可能还没有启用密钥空间通知:

  

默认情况下,键空间事件通知被禁用,因为while   不太明智的功能使用一些CPU电源。通知是   使用redis.conf的notify-keyspace-events或通过   CONFIG SET。

有些docs page会向您解释如何启用它们。