English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis发布 подписка (pub/sub) - это модель коммуникации сообщений: отправитель (pub) отправляет сообщения, подписчики (sub) получают сообщения.
Клиент Redis может подписаться на любое количество каналов.
На следующем рисунке показаны канал channel1 и три клиента, подписавшиеся на этот канал - client2, client5 и client1, и их之间的关系:
Когда новое сообщение отправляется в канал channel1 через команду PUBLISH, это сообщение будет отправлено трем подписавшимся клиентам:
Следующий пример демонстрирует, как работает публикация подписки, необходимо запустить два клиента redis-cli.
В нашем примере мы создали канал подписки с именем w3codeboxChat:
Теперь我们先重新启动一个 redis клиент, затем в том же канале w3codeboxChat публикуем два сообщения, подписчики смогут получить сообщения.
Порядок выполнения такой:
Запуск местной службы Redis, запуск двух клиентов redis-cli.
ВПервый клиент redis-cliВвести SUBSCRIBE w3codeboxChat, что означает подписаться на канал w3codeboxChat.
ВВторой клиент redis-cliВвести PUBLISH w3codeboxChat "Redis PUBLISH test", чтобы отправить сообщение на канал w3codeboxChat. В этот момент на первом клиенте redis-cli можно увидеть тестовое сообщение, отправленное вторым клиентом redis-cli.
В таблице ниже перечислены часто используемые команды redis для публикации и подписки:
Номер | Команды и описание |
---|---|
1 | PSUBSCRIBE шаблон [шаблон ...] Подписаться на один или несколько каналов, соответствующих данному шаблону. |
2 | PUBSUB subcommand [аргумент [аргумент ...]] Просмотреть состояние системы подписки и публикации. |
3 | PUBLISH канал сообщение Отправить информацию на указанный канал. |
4 | PUNSUBSCRIBE [шаблон [шаблон ...]] Отменить подписку на все каналы, соответствующие данному шаблону. |
5 | SUBSCRIBE канал [канал ...] Подписаться на информацию о данном одном или нескольких каналах. |
6 | UNSUBSCRIBE [канал [канал ...]] Отменить подписку на указанный канал. |