#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 месяца
Также стоит посмотреть