раздел 37
Redis с нуля
Redis как хранилище в памяти: ключи и время жизни, строки и счётчики, списки, множества, хеши и sorted sets. Кэширование с cache-aside, стратегиями записи и защитой от стампеда, политики вытеснения. Pub/Sub, очереди и Redis Streams с группами потребителей, Bitmaps, HyperLogLog и гео-команды. Паттерны: транзакции с WATCH, Lua, распределённые блокировки, rate limiting, лидерборды и сессии. Финал про персистентность, репликацию, Sentinel, Redis Cluster, память и безопасность.
Не получилось изменить список. Попробуй ещё раз.
Без входа у каждого урока видно начало. Войди, чтобы читать целиком, отмечать пройденное и решать задачи. войти
«Redis с нуля» покупается один раз и остаётся навсегда: 500 ₽. Оплата пока не подключена, доступ открывается промокодом. ввести промокод
Уроки раздела
- Что такое Redis и зачем нужна память
- Установка Redis и первое подключение
- Ключи, пространства имён и время жизни
- Строки: основной тип данных Redis
- Числа, счётчики и атомарный инкремент
- Транзакции и пайплайнинг
- Списки: очереди и стеки
- Множества: уникальность и пересечения
- Хеши: объекты и поля
- Sorted Sets: рейтинги и лидерборды
- Паттерн cache-aside
- Стратегии записи: write-through и write-behind
- TTL, политики вытеснения и maxmemory
- Защита кэша: стампед, лавина, проникновение
- Pub/Sub: рассылка событий в реальном времени
- Очереди задач на списках
- Redis Streams: надёжные очереди событий
- Персистентность: RDB и AOF
- Распределённые блокировки и атомарность через Lua
- Продвинутые структуры: HyperLogLog, Bitmaps, Streams, Stack
- Redis в продакшене: масштабирование и эксплуатация
- Bitmaps: биты как данные
- HyperLogLog: подсчёт уникальных приближённо
- Гео-команды: координаты и радиус
- Streams вглубь: consumer groups
- Транзакции: MULTI, EXEC, WATCH
- Lua-скрипты: атомарность и логика на сервере
- Конвейеризация: убираем задержки сети
- Pub/Sub против Streams: что выбрать
- Распределённые блокировки
- Ограничение частоты (rate limiting)
- Рейтинги и таблицы лидеров на sorted sets
- Сессии и кэш-паттерны
- Репликация и Sentinel: высокая доступность
- Redis Cluster: шардирование
- Память и политики вытеснения
- Безопасность и мониторинг
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Что такое Redis и in-memory хранилища
- Ключи, пространства имён и время жизниИмена ключей через двоеточие, EXISTS, DEL, TYPE, EXPIRE и TTL, почему не KEYS, а SCAN.урок 3 · Ключи, пространства имён и время жизниопираются: урок 4
- Установка Redis и первое подключениеRedis в Docker, redis-cli, PING, строка подключения, Valkey и облачные варианты.урок 2 · Установка Redis и первое подключениеопираются: урок 3
- Что такое Redis и зачем нужна памятьХранилище ключ-значение в памяти, однопоточная модель, задачи Redis и его отличие от СУБД.урок 1 · Что такое Redis и зачем нужна памятьопираются: урок 2
Строки и базовые команды
- Строки: основной тип данных RedisSET и GET с опциями NX, XX и EX, MSET и MGET, APPEND и GETRANGE, бинарно безопасные строки.урок 4 · Строки: основной тип данных Redisопираются: урок 5
- Транзакции и пайплайнингMULTI и EXEC в первом приближении, пайплайн как пачка команд за один проход по сети.урок 6 · Транзакции и пайплайнингопираются: урок 7
- Числа, счётчики и атомарный инкрементINCR, INCRBY, DECR, INCRBYFLOAT, почему инкремент атомарный, счётчики просмотров.урок 5 · Числа, счётчики и атомарный инкрементопираются: урок 6
Структуры данных Redis
- Множества: уникальность и пересеченияSADD, SISMEMBER, SMEMBERS, SINTER, SUNION, SDIFF, метки и общие друзья.урок 8 · Множества: уникальность и пересеченияопираются: урок 9
- Списки: очереди и стекиLPUSH, RPUSH, LPOP, RPOP, LRANGE, LTRIM, список как очередь и как стек, лента последних событий.урок 7 · Списки: очереди и стекиопираются: урок 8
- Хеши: объекты и поляHSET, HGET, HGETALL, HINCRBY, объект в хеше против JSON в строке.урок 9 · Хеши: объекты и поляопираются: урок 10
- Sorted Sets: рейтинги и лидербордыZADD, ZRANGE с WITHSCORES и REV, ZINCRBY, ZRANK, выборка по диапазону очков.урок 10 · Sorted Sets: рейтинги и лидербордыопираются: урок 11
Кэширование и TTL
- Защита кэша: стампед, лавина, проникновениеСтампед и блокировка на заполнение, разброс TTL против лавины, кэш пустых ответов.урок 14 · Защита кэша: стампед, лавина, проникновениеопираются: урок 15
- Паттерн cache-asideЧтение через кэш, промах и заполнение, инвалидация при записи, выбор ключа и TTL.урок 11 · Паттерн cache-asideопираются: урок 12
- Стратегии записи: write-through и write-behindЗапись в кэш и базу вместе или с задержкой, согласованность и риски потери.урок 12 · Стратегии записи: write-through и write-behindопираются: урок 13
- TTL, политики вытеснения и maxmemorymaxmemory, allkeys-lru, volatile-ttl и другие политики, ленивое и активное удаление ключей.урок 13 · TTL, политики вытеснения и maxmemoryопираются: урок 14
Pub/Sub и очереди сообщений
- Очереди задач на спискахПроизводитель и потребитель на LPUSH и BRPOP, надёжная очередь через LMOVE.урок 16 · Очереди задач на спискахопираются: урок 17
- Pub/Sub: рассылка событий в реальном времениPUBLISH и SUBSCRIBE, шаблоны каналов, почему сообщения теряются без подписчика.урок 15 · Pub/Sub: рассылка событий в реальном времениопираются: урок 16
- Redis Streams: надёжные очереди событийXADD, XRANGE, XREAD, идентификаторы записей, чем стрим лучше списка.урок 17 · Redis Streams: надёжные очереди событийопираются: урок 18
Персистентность и продакшен
- Персистентность: RDB и AOFСнимки RDB, журнал AOF и fsync, смешанный режим, что теряется при падении.урок 18 · Персистентность: RDB и AOFопираются: урок 19
- Продвинутые структуры: HyperLogLog, Bitmaps, Streams StackОбзор специальных структур и модулей Redis Stack: когда что брать.урок 20 · Продвинутые структуры: HyperLogLog, Bitmaps, Streams, Stackопираются: урок 21
- Распределённые блокировки и атомарность через LuaSET NX EX как блокировка, снятие только своей блокировки, зачем скрипты Lua.урок 19 · Распределённые блокировки и атомарность через Luaопираются: урок 20
- Redis в продакшене: масштабирование и эксплуатацияОбзор: реплики, Sentinel, Cluster, память, безопасность, что смотреть в INFO.урок 21 · Redis в продакшене: масштабирование и эксплуатацияопираются: урок 22
Продвинутые структуры: Bitmaps, HyperLogLog, Geo, Streams
- Гео-команды: координаты и радиусGEOADD, GEODIST, GEOSEARCH по радиусу и прямоугольнику, геохеш внутри sorted set.урок 24 · Гео-команды: координаты и радиусопираются: урок 25
- Bitmaps: биты как данныеSETBIT, GETBIT, BITCOUNT, BITOP, активность пользователей по дням.урок 22 · Bitmaps: биты как данныеопираются: урок 23
- HyperLogLog: подсчёт уникальных приближённоPFADD, PFCOUNT, PFMERGE, погрешность и 12 КБ памяти на счётчик.урок 23 · HyperLogLog: подсчёт уникальных приближённоопираются: урок 24
- Streams вглубь: consumer groupsXGROUP, XREADGROUP, XACK, XPENDING, XAUTOCLAIM, обработка упавших потребителей.урок 25 · Streams вглубь: consumer groupsопираются: урок 26
Транзакции, скрипты и производительность
- Конвейеризация: убираем задержки сетиВремя на сеть против времени на команду, пайплайн в клиенте, пачки разумного размера.урок 28 · Конвейеризация: убираем задержки сетиопираются: урок 29
- Транзакции: MULTI, EXEC, WATCHОчередь команд, отсутствие отката, оптимистичная блокировка через WATCH.урок 26 · Транзакции: MULTI, EXEC, WATCHопираются: урок 27
- Lua-скрипты: атомарность и логика на сервереEVAL, KEYS и ARGV, EVALSHA, функции Redis 7, почему скрипт должен быть коротким.урок 27 · Lua-скрипты: атомарность и логика на сервереопираются: урок 28
- Pub/Sub против Streams: что выбратьДоставка, хранение, подтверждения и масштаб: сравнение на задачах.урок 29 · Pub/Sub против Streams: что выбратьопираются: урок 30
Паттерны Redis: блокировки, лимиты, рейтинги
- Ограничение частоты (rate limiting)Фиксированное окно на INCR, скользящее окно на sorted set, token bucket.урок 31 · Ограничение частоты (rate limiting)опираются: урок 32
- Распределённые блокировкиБлокировка с токеном, продление, Redlock и его критика, когда нужна база.урок 30 · Распределённые блокировкиопираются: урок 31
- Рейтинги и таблицы лидеров на sorted setsОбщий рейтинг, рейтинг за неделю через ZUNIONSTORE, соседи по таблице.урок 32 · Рейтинги и таблицы лидеров на sorted setsопираются: урок 33
- Сессии и кэш-паттерныСессия в хеше с TTL, скользящее продление, кэш страниц и фрагментов.урок 33 · Сессии и кэш-паттерныопираются: урок 34
Масштабирование и внутреннее устройство
- Безопасность и мониторингACL и пароли, защищённый режим, опасные команды, INFO, SLOWLOG, LATENCY.урок 37 · Безопасность и мониторинг
- Память и политики вытесненияКомпактные кодировки, MEMORY USAGE, фрагментация, большие ключи и их поиск.урок 36 · Память и политики вытесненияопираются: урок 37
- Репликация и Sentinel: высокая доступностьREPLICAOF, асинхронная репликация, Sentinel и автоматическое переключение.урок 34 · Репликация и Sentinel: высокая доступностьопираются: урок 35
- Redis Cluster: шардирование16384 слота, хеш-теги, MOVED и ASK, ограничения на команды с несколькими ключами.урок 35 · Redis Cluster: шардированиеопираются: урок 36