redis - 什么是 Redis pubsub,我该如何使用它?

标签 redis publish-subscribe

有人问我 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/

相关文章:

redis - 处理分布式长时间运行任务的 pubsub 订阅者

java - 使用 Google pub/sub 更新单例 HashMap

javascript - 发布/订阅

jquery - 如何使用 jQuery .subscribe()?

node.js - 我应该如何在redis中存储数组?

php - 在 Lumen 中使用 PRedis 库时,Redis 集群的集群槽池中没有连接

redis - 使用redis pub/sub连接Tornado进程

spring-boot - Spring Boot 中的监听器,用于监听(异步)Google Pubsub 消息

node.js - Kue 是否使用 Redis 订阅任何 (*) 模式?

java - 无法自动配置 session 存储库( session 存储类型为 'redis' )