有人问我 PubSub 是什么以及如何创建 channel (来自 my answer 的评论),我向他指出了 redis.io 上的文章 => http://redis.io/topics/pubsub .我认为这很清楚,但我想知道是否有人有更好的解释。理想情况下,使用 redis-cli
清楚地描述它。
最佳答案
发布/订阅是一个非常简单的范例。把它想象成你在广播电台上播放脱口秀节目。那就是发布。您希望至少有一个或多个人会选择您的 channel 来收听您在广播节目中的信息 (订阅),甚至可能会做一些事情,但您不是直接与人们交谈.
让我们用 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” channel (即响应中的 0)上接收消息。没有人在听。现在,打开另一个 redis-cli(或者让 friend 打开他们的 redis-cli 并连接到您的服务器以获得更多乐趣)并订阅 channel :
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!"
当然,在现实中,您可能想要做一些比告诉客户您不穿裤子的生活方式更有用的事情,例如在您的服务器上触发事件或运行某种任务/工作。也许不是! :)
关于redis - 什么是 Redis pubsub,我该如何使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6487394/