Redis Pub/Sub 持久化

Redis Pub/Sub persistence

我正在研究 Redis SMQ 持久性。我的问题是,当发布者发布消息时,消费者突然停止了。当消费者再次连接时,是否可以从停止的地方订阅消息?

否 - Redis 的 Pub/Sub 没有持久性,一旦消息发布,它只会发送给连接的订阅客户端。之后,消息就永远消失了。

使用标准 Pub/Sub,您可以使用 Lua 脚本来保留您的消息。您需要检查频道上是否有听众。如果没有,则将您的消息与频道密钥一起存储在 redis 上。当订户回来时,它会根据频道密钥检查是否有适合他的东西。第二种选择是使用 Redis Stream. Check this gist.

请使用 2 个 redis 连接:1 个 pubsub,第二个 - LPOP/RPOP