2016-12-19 4 views
1

Я использую Jedis 2.9.0 версию и я последовалRedis ключа истекает уведомление с Jedis не работает

Redis Key expire notification with Jedis

но метод onPMessage в Listener не вызывается, когда истекает REDIS ключ.

в Абонента я

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

Когда я бегу сервер

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

, но после 10 секунд Redis ключ истек, но onPMessage не срабатывали.

+0

Вы пытались заменить '*' конкретным каналом канала? Как '' __key * __: * ' – haifzhan

ответ

2

Expire уведомление не пространство ключей уволен только когда ключ истек, но (из the docs):

  • Когда ключ доступен по команде и установлено, что истек.
  • Через систему фона, которая ищет устаревшие ключи в фоновом режиме, поэтапно, чтобы иметь возможность также собирать ключи, которые никогда не имеют .

Кроме того, может быть, вы не позволили уведомления: пространство ключей

По умолчанию уведомлений ключевого пространства событий будут отключены, потому что в то время как не очень разумно функция использует некоторую мощность процессора. Уведомления: разрешено использование событий-ключей-событий redis.conf или через CONFIG SET.

docs page объяснит вам, как их включить.

+0

Спасибо Matías Fidemraizer. Я просто добавил $ AKE для уведомлений-keypace-events, и это сработало как шарм. –

+0

@GouravSoni Приветствую вас! Я рад, что вы смогли решить вашу проблему! :) –