Как найти максимальное количество подключений, доступных в Redis, и сколько из них используется и сколько бесплатных?

Мы используем Redis из приложения загрузки Spring, и мы получаем предупреждение ниже, как наводнение

Exception occurred while querying cache : class org.springframework.data.redis.RedisConnectionFailureException Message: Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolCause: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the poolMessage:Could not get a resource from the pool",

это из-за того, что они не подключены к серверу Redis? или по любой другой причине?

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

проверьте мой обновленный ответ

Imaskar 26.07.2018 15:35
1
1
569
1

Ответы 1

Could not get a resource from the pool

У вас закончились соединения в пуле джедаев на стороне клиента. Возможные исправления:

  1. Верните соединения в пул должным образом (pool.returnResource()), если вы этого не делаете. Не держите их в руках, когда они не нужны. Не отключайтесь регулярно. Убедитесь, что версия общего пула не ниже 1.6.
  2. Увеличьте размер пула.

    JedisPoolConfig poolConfig = new JedisPoolConfig();
    poolConfig.setMaxTotal(...);
    
  3. Увеличьте время ожидания, когда нет доступных подключений.

    poolConfig.setWhenExhaustedAction(GenericObjectPool.WHEN_EXHAUSTED_BLOCK);
    poolConfig.setMaxWait(...);
    

Обновлять:

Сведения об ограничениях на стороне сервера см. Здесь: https://stackoverflow.com/a/51539038/78569

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