Каналы Pub/Sub | Tdb_Resp
Команды Redis Каналы Pub/Sub

Каналы Pub/Sub

Pub/Sub, или издатель-подписчик – это модель обмена сообщениями, при которой отправители сообщений (издатели) запрограммированы не отправлять сообщения напрямую получателям (subscribers), а классифицировать опубликованные сообщения по каналам, не имея информации об их подписчиках. Получатели в свою очередь подписываются на интересные им каналы и получают сообщения только из этих каналов, без знания об отправителях сообщений. Такое разделение на издателей и подписчиков обеспечивает хорошую масштабируемость и динамичность топологии сети.

Поддерживаемые команды

  • PUBLISH – опубликовать сообщение в заданном канале;

  • SUBSCRIBE – подписать клиента на заданные каналы;

  • UNSUBSCRIBE – отписать клиента от заданных каналов. Если ни один канал не указан, отписка происходит ото всех каналов;

  • PSUBSCRIBE – подписать клиента на каналы по glob-шаблону. Поддерживаемые glob-шаблоны:

    • h?llo – название канала содержит шаблон ?, где ? – один любой символ. Пример: шаблон подписывает на каналы hello, hallo и hxllo, но не heello;

    • h*llo – название канала содержит шаблон *, где * – любая последовательность символов, включая пустую строку. Примеры: hllo, heeeello;

    • h[ae]llo – название канала содержит шаблон [], где [] – один из символов, заключенных в скобки. Пример: шаблон подписывает на каналы hello и hallo, но не hillo;

  • PUNSUBSCRIBE – отписать клиента от каналов по glob-шаблону. Поддерживаемые glob-шаблоны приведены в команде PSUBSCRIBE. Если ни один канал не указан, отписка происходит ото всех каналов;

  • PUBSUB CHANNELS – показать текущие активные каналы. Активный канал – это канал Pub/Sub с одним подписчиком или более, исключая клиентов, подписанных на шаблоны.

    Если шаблон не указан, команда выводит все активные каналы. Если шаблон задан, отображаются только те каналы, которые соответствуют этому glob-шаблону;

  • PUBSUB NUMPAT – вернуть количество уникальных шаблонов, на которые подписаны клиенты через команду PSUBSCRIBE. Обратите внимание, что это не количество клиентов, подписанных на шаблоны, а общее количество уникальных шаблонов, на которые подписаны все клиенты;

  • PUBSUB NUMSUB – вернуть количество подписчиков (кроме клиентов, подписанных на шаблоны) для указанных каналов. Команду PUBSUB NUMSUB можно вызвать и без указания каналов. В этом случае она вернёт пустой список.

Found what you were looking for?
Feedback