jedis psubscribe вызывает зависание приложения

Я использую Redis 2.8.19 и Jedis 2.6.0

pool = new JedisPool( new JedisPoolConfig(), "ip", 6379, 0 );
        System.out.println( "test2" );
        Jedis jedis = pool.getResource();
        jedis.psubscribe( new KeyExpiredListener(), "__key*__:*" );
        pool.returnResource( jedis );
        System.out.println( "test3" );

выход:

test2

Приложение, кажется, зависает, когда я пытаюсь подписаться на канал. Поэтому я задаю вопрос: почему мое приложение зависает из-за этого?

2 ответа

Решение

Исправлено это путем установки для notify-keyspace-events значения Ex в redis.conf

и слушаю__keyevent@0__:*"

jedis.psubscribe( new KeyExpiredListener(), "__keyevent@0__:*" );

psubscribe - операция блокировки Вы должны выполнить вызов psubscribe в отдельном потоке.

Другие вопросы по тегам