StackExchange.redis - Тайм-аут Redis при партии - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь вставить 1M ключей хэшей для повторного использования, используя пакетную вставку. Когда я это делаю, несколько тысяч ключей не вставляются, и я получаю RedisTimeoutException .

Вот мой код:

IDatabase db = RedisDB.Instance;
List<Task> tasks = new List<Task>();
var batch = db.CreateBatch();
  foreach (var itemKVP in items)
{
HashEntry[] hash = RedisConverter.ToHashEntries(itemKVP.Value);
tasks.Add(batch.HashSetAsync(itemKVP.Key, hash));
}
batch.Execute();
Task.WaitAll(tasks.ToArray());

И затем я получаю это исключение:

RedisTimeoutException: время ожидания ответа (исходящий = 463 КБ, входящий = 10 КБ, 100219 мс прошло, время ожидания составляет 5000 мс), команда = HMSET, следующее: HMSET *****: * ****: 1390194, inst: 0, qu: 0, qs: 110, aw: True, rs: DequeueResult, ws: Запись, in: 0, in-pipe: 1045, out-pipe: 0, serverEndpoint: 10.7 .3.36: 6379, мгр: 9 из 10 доступны, clientName: DataCachingService: DEV25S, IOCP: (занято = 0, свободно = 1000, мин = 8, макс = 1000), РАБОЧИЙ: (занят = 4, свободен = 32763, мин. = 8, Макс. = 32767), Local-CPU: 0%, v: 2.0.601.3402 (посмотрите в этой статье некоторые распространенные проблемы на стороне клиента, которые могут вызвать тайм-ауты: https://stackexchange.github.io/StackExchange.Redis/Timeouts)

Я прочитал статью, но мне не удалось решить проблему.

...