Подборка объединяет вопросы, отмеченные на этапах интервью в 1inch. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: redis, kafka.
Pipelining отправляет несколько команд без ожидания ответа на каждую, уменьшая число round trips и сетевых вызовов. Для 10 000 команд подберите ограниченные пакеты и обязательно прочитайте все ответы.
ZSET хранит уникальных участников с числовыми score и поддерживает порядок и диапазоны; Hash хранит пары полей и значений без такой сортировки. Внутреннее представление ZSET зависит от размера.
BGSAVE создаёт дочерний процесс через fork: ребёнок записывает снимок, а родитель продолжает обслуживать клиентов. Copy-on-Write позволяет сначала разделять страницы памяти и копировать их при изменении.
Lua-скрипт выполняет проверку и изменение данных без вклинивания других команд Redis. Поэтому счётчик, лимит и TTL можно согласованно обновить одним вызовом вместо гонки между GET и SET.
KEYS * выполняет полный обход ключей одной командой и может надолго задержать другие операции Redis. Обычно используют курсорный SCAN с ограничением темпа и обработкой повторов.
TTL-lock может истечь во время паузы GC, после чего старый worker продолжит работу одновременно с новым. Для защиты ресурса нужен fencing token или проверка версии, а не только продление TTL.
Redis tracking отслеживает прочитанные клиентом ключи и отправляет invalidation при их изменении. Клиент удаляет локальную копию и получает новое значение при следующем чтении.
Redis Streams предоставляет журнал записей, consumer groups и подтверждения обработки. Это удобно для небольшого событийного контура, но не делает Redis полной заменой Kafka по хранению и масштабированию.
Cache avalanche — массовое истечение ключей или недоступность кеша, из-за чего нагрузка одновременно переходит в основную БД. Jitter разносит сроки истечения во времени.
Redis Cluster сначала отображает ключ в один из 16 384 hash slots, а затем slot — в узел. При hash(key) % N изменение числа узлов обычно перераспределяет почти все ключи.