7 вопросов
Redis - in-memory хранилище с поддержкой структур данных (строки, списки, sorted sets, хеши). Используется как кеш, брокер сообщений, session store. TTL, persistence (RDB/AOF), distributed lock.
Redis - in-memory key-value хранилище. Все данные в RAM - операции за микросекунды. Поддерживает строки, списки, множества, хеш-таблицы, sorted sets, streams. Используется как кеш, брокер сообщений, session store.
Подробнее →TTL (Time To Live) задаёт время жизни ключа: SET key value EX 60 или EXPIRE key 60. После истечения ключ автоматически удаляется. Основа кеширования - кеш автоматически инвалидируется.
Подробнее →Sorted Set хранит элементы с числовым score и автоматически сортирует. ZADD leaderboard 100 "player1" добавляет игрока. ZREVRANGE - топ игроков. ZRANK - позиция. O(log N) для вставки и поиска.
Подробнее →RDB - периодические снапшоты (быстрое восстановление, но потеря данных между снапшотами). AOF - журнал каждой операции (минимальная потеря, но больший файл). Можно использовать оба одновременно.
Подробнее →Redis: множество структур данных (lists, sets, hashes), persistence (RDB/AOF), pub/sub, Lua-скрипты, кластеризация. Memcached: только key-value строки, нет persistence, проще, но многопоточный (Redis однопоточный для команд).
Подробнее →Cache-aside: 1) читаем из кеша; 2) если нет - читаем из БД, кладём в кеш; 3) при записи - пишем в БД, удаляем из кеша (не обновляем!). Удаление надёжнее - при ошибке не останутся устаревшие данные. Следующее чтение заполнит кеш актуальными данными.
Подробнее →SET key value NX EX 30 - атомарно устанавливает ключ, только если он не существует (NX), с таймаутом 30 секунд (EX). Если SET удался - блокировка получена. Таймаут предотвращает вечную блокировку при сбое. Redlock - алгоритм для кластеров.
Подробнее →