Вопрос с собеседования · Базы данных

Какой доступ к данным предоставляет хранилище ключ-значение?

JuniorKey-value хранилища
Ещё спрашивают так:
  • Как работает хранилище ключ-значение?
Коротко

Простейшая модель: get/put/delete по ключу, значение для хранилища непрозрачно.

  • Очень быстрый и предсказуемый доступ, легко шардируется по ключу
  • Нет запросов по содержимому значения
  • Примеры: Redis, DynamoDB, etcd, Memcached

А ещё Хорошо для сессий, корзин, кэша, конфигурации

Подробно

Именно эта простота и даёт скорость с предсказуемой задержкой: чтобы найти значение, достаточно вычислить по ключу нужный узел. Обратная сторона — модель нужно проектировать от известных сценариев доступа, потому что запрос «найди всех пользователей из города N» здесь невыполним без отдельной структуры. Типичные применения — кэш, сессии, счётчики, профили по идентификатору.

Что хотят услышать

  • Операции модели.
  • Сильные стороны и ограничения.

Частые ошибки

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Соединение записей между собой по общим полям
  • ✗Полнотекстовый поиск по всему содержимому значений
  • ✓Только по ключу: положить, получить, удалить
  • ✗Произвольные запросы по любым полям внутри значения

Что спросят дальше

  • Почему выбор ключа партиционирования так важен?
  • Что такое проблема горячего ключа?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования