Проблема с массовой вставкой Redis "Ошибка протокола ERR: слишком большая строка счетчика mbulk" - PullRequest
1 голос
/ 05 августа 2020

ОБНОВЛЕНИЕ I split файл в несколько файлов, каждый примерно с 1,5 миллионами строк и без проблем.

Попытка передать в Redis 6.0.6 примерно 15 миллионов строк SADD и Команды HSET правильно отформатированы как Redis Mass Insertion , но это не удается со следующим сообщением:

ERR Protocol error: too big mbulk count string

Я использую следующую команду:

echo -e "$(cat load.txt)" | redis-cli --pipe

Я запускаю команду dbsize в redis-cli, и она не показывает увеличения в течение всего времени.

Я могу использовать написанное мной приложение для форматирования (приложение C ++ с клиентской библиотекой redis-plus-plus), которое правильно форматирует строки, записывает в std :: cout, а затем также использует следующую команду:

./app | redis-cli --pipe

, но он сразу закрывается, и только иногда выдает сообщение об ошибке.

Если я беру примерно 400 000 строк из файла load.txt и загружаю его в файл меньшего размера, используйте echo -e et c .... он загружается нормально. Проблема, похоже, в большом количестве строк.

Есть предложения? Это не проблема форматирования afaik. Я могу запрограммировать свое приложение, чтобы записывать все команды в Redis, но массовая вставка должна быть быстрее, и я бы предпочел этот маршрут.

...