Redis - StackExchange.Redis - Отсутствие ключей при массовой вставке с использованием драйвера C # - PullRequest
0 голосов
/ 28 августа 2018

Моя текущая среда - .NET Core 2.1, Redis-Server / cli 3.2 на Windows Server

В настоящее время я пытаюсь вставить большое число ключей в Redis с помощью драйвера StackExchange.Redis в моем консольном приложении .NET, например:

foreach (var item in collection)
{
    var key = item.SomeKey;
    var value = item.SomeValue;
    //Tried Both Async and Sync
    redisDatabase.StringSetAsync(key, value);
    redisDatabase.StringSet(key, value);
}

Записи передаются для каждого в партиях по 1000

Моя коллекция имеет около 285000 записей и поэтому вставляет их в redis-сервер, но по завершении я вижу только 250000 нечетных записей в базе данных (после выполнения команды INFO redis-cli).

Почему это происходит?

Я знаю, что для массовых вставок лучше использовать протокол redis, но это временное решение, которое мне нужно сейчас

1 Ответ

0 голосов
/ 31 августа 2018

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

Первоначально он был установлен на 1000 запросов на итерацию, а когда он был изменен на 500, он вставлял все без пропусков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...