Redis PubSub — введение в методы и примеры подписчиков

Redis PubSub (Publish-Subscribe) — это шаблон обмена сообщениями, реализованный в Redis, который обеспечивает связь в реальном времени между различными компонентами приложения. В этой статье мы рассмотрим различные методы, доступные подписчику в Redis PubSub, а также примеры кода, иллюстрирующие их использование.

Метод 1: SUBSCRIBE
Метод SUBSCRIBE используется для подписки на один или несколько каналов в Redis PubSub. После подписки подписчик получает сообщения, опубликованные на этих каналах.

Пример:

import redis
r = redis.Redis()
p = r.pubsub()
p.subscribe('channel1', 'channel2')
for message in p.listen():
    print(message)

Метод 2: ОТПИСАТЬСЯ
Метод ОТПИСАТЬСЯ позволяет подписчику отказаться от подписки на один или несколько каналов. После отказа от подписки подписчик больше не будет получать сообщения из этих каналов.

Пример:

import redis
r = redis.Redis()
p = r.pubsub()
p.subscribe('channel1', 'channel2')
# ... Receive and process messages ...
p.unsubscribe('channel2')

Метод 3: PSUBSCRIBE
Метод PSUBSCRIBE аналогичен SUBSCRIBE, но допускает подписки на основе шаблонов. Он подписывается на каналы, соответствующие заданному шаблону.

Пример:

import redis
r = redis.Redis()
p = r.pubsub()
p.psubscribe('channel*')
for message in p.listen():
    print(message)

Метод 4: PUNSUBSCRIBE
Метод PUNSUBSCRIBE используется для отказа от подписки на каналы, соответствующие определенному шаблону.

Пример:

import redis
r = redis.Redis()
p = r.pubsub()
p.psubscribe('channel*')
# ... Receive and process messages ...
p.punsubscribe('channel*')

Метод 5: ОБРАБОТКА СООБЩЕНИЙ
При получении сообщения подписчик может определить функцию обратного вызова для обработки сообщения.

Пример:

import redis
def message_handler(message):
    print(f"Received message: {message['data']}")
r = redis.Redis()
p = r.pubsub()
p.subscribe('channel1')
p.subscribe('channel2')
p.set_message_handler(message_handler)
# ... Receive and process messages ...

В этой статье мы рассмотрели различные методы, доступные подписчику в Redis PubSub. Мы обсудили методы SUBSCRIBE и UNSUBSCRIBE для подписки и отказа от подписки на каналы, а также методы PSUBSCRIBE и PUNSUBSCRIBE для подписок на основе шаблонов. Кроме того, мы узнали об обработке сообщений и о том, как определить функцию обратного вызова для обработки полученных сообщений. С помощью этих методов и примеров вы можете начать использовать Redis PubSub для обмена сообщениями в реальном времени в своих приложениях.