【问题标题】:does redis pub sub persist historical messages in a channel?redis pub sub 会在频道中保留历史消息吗?
【发布时间】:2013-08-07 10:42:38
【问题描述】:

我无法在文档中找到有关通道中的消息如何存储在 redis 发布/订阅中的文档。

当您发布到 redis 通道时,该消息是存储还是持久化?如果有,它会存储多长时间?如何获取历史消息?

否则,我假设它只是广播该消息并在这样做之后丢弃/删除该消息?

【问题讨论】:

标签: redis publish-subscribe


【解决方案1】:

您可以使用 sine 5.0 版本发布的Redis Streams。 它们支持持久性并且可以满足您的需求。 您可以从the article 找到更多详细信息,比较这些相似但不同的数据类型。

【讨论】:

    【解决方案2】:

    发布/订阅消息没有排队,甚至更少持久化。

    它们仅在套接字缓冲区中缓冲,并在与发布相同的事件循环迭代中立即发送给订阅者。

    如果订阅者未能阅读消息,则订阅者会丢失此消息。

    【讨论】:

    • 知道如何保存这些消息吗?我正在尝试实现类似聊天的功能
    • 您可以将它们存储在列表中。使用 LPUSH 存储项目,使用 LPOP 或 BLPOP 将其出列。您必须自己实现发布/订阅行为。
    • 哦好的..谢谢:)
    • @RahulDess 现在你可以使用Redis Keyspace Notifications
    • @DidierSpezia 如果是这种情况,为什么我会在 pubsub 客户端看到高输出缓冲区大小?
    猜你喜欢
    • 2020-02-05
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-17
    相关资源
    最近更新 更多