Redis Тайм-аут оптимизации.Нужны предложения - PullRequest
0 голосов
/ 04 июня 2018

Я получаю это исключение - время ожидания Redis истекло.Время ожидания истекло до получения соединения из пула.Это могло произойти, потому что все пул соединений были в использовании.Я установил ServiceStack.Redis.PoolSizeMultiplier в 100 и ServiceStack.Redis.PoolTimeOutSeconds в 50. Но я все еще получаю ошибки.Что ты предлагаешь.Увеличить или уменьшить это значение тайм-аута?Мне нужно некоторое объяснение об этом Redis.TimeOutValue.Каковы преимущества увеличения этих значений?

1 Ответ

0 голосов
/ 04 июня 2018

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

Это также может произойти, если ваши клиентские подключения Redis не удаляются должным образом после использования.Убедитесь, что все ваши экземпляры Redis Client удаляются после использования, например, с помощью оператора using {}:

using (var redis = redisManager.GetClient())
{
    //...
}

Другое решение, позволяющее избежать этой ошибки, - это переключиться на использование RedisManagerPool , котороесоздаст новое соединение за пределами пула после того, как размер пула будет превышен, однако это может скрывать проблему, связанную с неправильным удалением клиентов Redis.

...