为啥 Redis 具有 Pub/Sub 功能?

Posted

技术标签:

【中文标题】为啥 Redis 具有 Pub/Sub 功能?【英文标题】:Why does Redis have Pub/Sub capabilities?为什么 Redis 具有 Pub/Sub 功能? 【发布时间】:2011-06-23 17:41:00 【问题描述】:

为什么Redis(一个数据存储)具有Pub/Sub 功能?我的第一个想法是实现这样的事情是错误的层。但也许我需要跳出框框思考。

【问题讨论】:

如果您删除最后一句话,我会很高兴为这个问题 +1。 :-) 哈哈——好吧,我想保持开放的心态。也许在数据库拥有全文索引之前,人们认为包含它的想法很愚蠢,但现在它对大多数类型的数据都非常有意义。 “但也许我需要保持开放的心态”实际上是对当前句子的重大改进。 :-) 不确定我是否关注。我认为“跳出框框思考”这个概念是“保持开放的心态”概念的一个子集,特别是它适合在讨论系统设计的上下文中使用(系统的目的/范围是“盒子”)。 【参考方案1】:

Redis 被定义为数据结构服务器。 Redis 提供了多种功能,如 memcache、queue、pubsub 等。这对于 cloudapp/webstack 非常有用,其中 3 个组件 RabbitMQ(queuing) + XMPP(pubsub) + Memcache 目前可以用 redis 替换。不过,队列功能不如 RabbitMQ 丰富。

【讨论】:

【参考方案2】:

如果它是关于供最终用户订阅的提要,那将是正确的。实际上它更接近于事件或数据库触发器的概念 - 一个知道数据存储内部的进程保持连接打开并在发生更改时执行某些操作。

【讨论】:

我在 Redis 中使用过 Pub/Sub。 Redis 中有没有一种方法可以在特定哈希上创建一个“挂钩”,以便如果哈希发生更改,我会收到回调?

以上是关于为啥 Redis 具有 Pub/Sub 功能?的主要内容,如果未能解决你的问题,请参考以下文章

socket.io 广播功能 & Redis pub/sub 架构

#yyds干货盘点#Redis之Pub/Sub

redis pub sub 生产者可以当消费者吗

Google Pub/Sub 功能是不是具有在上传后直接通知 Google App Engine 端点的某些功能?

SpringBoot 集成Redis pub/sub

Redis Pub/Sub 发布订阅模式的深度解析与实现消息队列