Что означает это предложение в документации SETRANGE? - PullRequest
0 голосов
/ 21 марта 2020

Меня смущает предложение в документации Redis о команде SETRANGE .

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

Означает ли это: когда Redis выделяет память для последнего байта, Redis проверит, где может быть выделена память, которая не занята, чтобы команда блокировалась на некоторое время?

1 Ответ

1 голос
/ 21 марта 2020

Выделение большого объема памяти происходит медленно. Поскольку сервер Redis является однопоточным, это означает, что эта команда может блокировать весь сервер на некоторое время (возможно, на долгое время), пока не станет доступной память.

Такой тип производительности необычен для команды Redis - и это не то, что может быть захвачено сложностью времени (нотация big-O) - поэтому документация предупреждает вас об этом.

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