Каковы риски использования команды KEYS * на работающем продакшене и какой безопасной альтернативой её заменяют?

KEYS * выполняет полный обход ключей одной командой и может надолго задержать другие операции Redis. Обычно используют курсорный SCAN с ограничением темпа и обработкой повторов.

Короткий ответ

Что ответить на собеседовании

KEYS * выполняет полный обход ключей одной командой и может надолго задержать другие операции Redis. Обычно используют курсорный SCAN с ограничением темпа и обработкой повторов.

Подробный разбор

Ответ с пояснениями

KEYS * выполняет полный обход ключей одной командой и может надолго задержать другие операции Redis. Обычно используют курсорный SCAN с ограничением темпа и обработкой повторов.

Итерацию начинают с курсора 0 и продолжают до возвращения 0. COUNT — подсказка объёма работы, а не строгий размер страницы; пустая порция не означает завершение. SCAN не даёт согласованный snapshot изменяющейся базы и может возвращать ключ повторно. Полный обход всё равно стоит O(N), поэтому нельзя запускать множество быстрых сканов без контроля нагрузки. Для регулярного поиска по предметному признаку лучше поддерживать отдельную структуру, чем каждый раз обходить всю базу.

Источник: redis.io.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее