Redis

8 уроков
Консультации
#4 – Работа с TTL, Expire и Pub/Sub

#4 – Работа с TTL, Expire и Pub/Sub

При помощи специальных команд в Redis можно указать время жизни ключа. По истечению времени ключ удаляется автоматически. За урок вы научитесь указывать время, работать с подписками, а также выполнять мультитранзакции.

Видеоурок

Redis — это высокопроизводительное хранилище данных типа "ключ-значение", которое поддерживает множество удобных команд для управления данными. Одна из таких возможностей — управление временем жизни ключей.


Например, можно создать ключ user:123 со значением John Doe с помощью команды SET. Если нужно, чтобы этот ключ существовал только ограниченное время, к нему можно привязать таймер с помощью команды EXPIRE, задав срок жизни в секундах. Проверить, сколько времени осталось до удаления ключа, позволяет команда TTL. Если ключ бессрочный, Redis вернет -1, а если ключ уже удален — вернет -2. При необходимости можно снять ограничение по времени с помощью команды PERSIST, после чего ключ станет бессрочным.


Система публикации и подписки (Pub/Sub)

Redis также поддерживает встроенную систему Pub/Sub, которая позволяет приложениям обмениваться сообщениями в реальном времени. Одно приложение может подписаться на канал с помощью команды SUBSCRIBE, а другое — отправлять в этот канал сообщения с помощью PUBLISH.


Например, приложение может подписаться на канал news и сразу же начать получать все сообщения, которые туда отправляются. В другом терминале или процессе можно опубликовать сообщение в этот канал. Все подписчики сразу же его получат. При необходимости можно отписаться от канала с помощью UNSUBSCRIBE.


Транзакции в Redis

Для выполнения нескольких команд в рамках одной атомарной операции Redis поддерживает механизм транзакций. Он реализован через команды MULTI и EXEC. Команды, добавленные после MULTI, не выполняются сразу, а помещаются в очередь. Когда вызывается EXEC, все команды из очереди выполняются последовательно в одном пакете, без возможности прерывания.


Например, можно использовать транзакцию для управления балансом пользователя. Внутри MULTI можно установить начальный баланс, затем увеличить его и сразу уменьшить на определенную сумму. Все изменения применятся сразу после EXEC, что гарантирует согласованность данных.

Исходный код

Весь код будет доступен после подписки на проект!

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

AI Agents, Vibe Coding и разработка с Claude Code
1 урок
Уроки ChatGPT API / Разработка программ на Python и ChatGPT
7 уроков
Верстка сайта на HTML5 и CSS3
8 уроков
Изучение JavaScript: от нуля и до создания сайта
Уроки Qt Creator | Графический интерфейс на С++
13 уроков
Уроки Swift для начинающих
8 уроков
Комментарии
Добавить комментарий

Пока комментариев нет