Redis Pub子通道内存

时间:2014-06-13 17:23:42

标签: memory redis publish-subscribe

在pub-sub的情况下,Redis使用什么机制将消息保存在内存中?如果没有客户订阅消息会发生什么? Redis会缓冲它们吗?有没有办法配置分钟。最多每个频道分配的内存?

1 个答案:

答案 0 :(得分:14)

Redis不会在Pub / Sub上下文中将消息保留在内存中,如implementation(x)中所示:

  1. 邮件将发送给客户listening for that channel(如果有),
  2. 邮件将发送给客户listening to matching channels(如果有)。
  3. 然后Redis只返回已收到消息的客户端数量(请记住,客户端可能会多次收到单个消息,例如,如果多个模式匹配)。

    如果没有订阅客户端,Redis只返回0并且不记录/缓冲消息:

    > publish foo test
    (integer) 0
    

    (x)基本上Redis循环遍历订阅的客户列表并发送带有消息的回复。