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

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

1 ответов


публикация / подписка-довольно простая парадигма. Думай об этом, как будто ты ведешь ток-шоу на радиостанции. Это публикация. Вы надеетесь, что хотя бы один или несколько человек подберут ваш канал, чтобы прослушать ваши сообщения на радио-шоу (подписка) и, возможно, даже сделать некоторые вещи, но вы не разговариваете с людьми напрямую.

давайте повеселимся с 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!"

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