DBAtlas · Атлас эксплуатации баз данных

ERR Protocol error: invalid multibulk length: Protocol error: invalid multibulk length

Redis

Что это значит?

Сервер Redis не смог разобрать поток байтов от клиента согласно RESP (Redis Serialization Protocol). Поскольку заявленное командой multibulk число элементов было недопустимым, соединение закрыто с ошибкой протокола.

Почему возникает?

Обычно вызвано тем, что клиент, не являющийся клиентом Redis (например, HTTP-запрос, приложение, подключённое не к тому порту), отправляет сырые данные на порт Redis, повреждённой/неполной клиентской библиотекой, ошибочным кадрированием в конвейере (pipeline) или огромными запросами, превышающими лимиты протокола (proto-max-bulk-len).

Как исправить

Убедитесь, что к порту Redis подключается только настоящий клиент Redis (без случайного трафика HTTP/других протоколов). Обновите клиентскую библиотеку и избегайте самописной/ручной генерации команд, нарушающей кадрирование RESP. Если отправляете очень большие значения, проверьте лимит proto-max-bulk-len и размер запроса. Убедитесь, что промежуточный прокси в сети не искажает данные.

Открыть в DBAtlas →

Ещё по этой СУБД