Подтвердить что ты не робот

Что такое Redis pubsub и как его использовать?

Кто-нибудь спросил меня, что такое PubSub и как создать канал (в комментарии от мой ответ), и я указал ему на статью о redis.io = > http://redis.io/topics/pubsub. Я думаю, что это довольно ясно, но мне интересно, есть ли у кого-то лучшее объяснение. В идеале, опишите это с помощью redis-cli.

4b9b3361

Ответ 1

Опубликовать/подписаться - довольно простая парадигма. Подумайте об этом, как будто вы ведете ток-шоу на радиостанции. Это ПУБЛИКАЦИЯ. Вы надеетесь, что хотя бы один или несколько человек заберут ваш канал для прослушивания ваших сообщений на радиошоу (SUBSCRIBE) и, возможно, даже сделают некоторые вещи, но вы не разговариваете напрямую с людьми.

Давайте немного повеселимся с redis-cli!

redis 127.0.0.1:6379> PUBLISH myradioshow "Good morning everyone!"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "How ya'll doin tonight?"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "Hello? Is anyone listening? I'm not wearing pants."
(integer) 0

Обратите внимание: нет клиентов, получающих сообщения на вашем канале "myradioshow" (0 в ответе). Никто не слушает. Теперь откройте еще один redis-cli (или для более веселого времени у друга откроется их redis-cli и подключитесь к вашему серверу) и ПОДПИСАТЬ на канал:

redis 127.0.0.1:6379> SUBSCRIBE myradioshow
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "myradioshow"
3) (integer) 1

Вернитесь к своему оригинальному redis-cli и продолжите свое шоу:

redis 127.0.0.1:6379> PUBLISH myradioshow "Next caller gets a free loaf of bread!"
(integer) 1

Обратите внимание, что "1" в конце? У вас есть слушатель! Как и магия, в терминале SUBSCRIBE-d:

1) "message"
2) "myradioshow"
3) "Next caller gets a free loaf of bread!"

Конечно, на самом деле вы, вероятно, захотите делать вещи, которые более полезны, чем рассказывать вашим клиентам о вашем безвкусном образе жизни, таком как запуск событий на вашем сервере или выполнение каких-либо задач/заданий. Может быть, нет!:)