#4 – Работа с TTL, Expire и Pub/Sub
Відеоурок
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 місяця
Також варто подивитися