Redis:PUBLISH是异步的吗?

时间:2016-06-01 00:37:58

标签: redis publish-subscribe

如果我PUBLISH在Redis上有一个订阅者但该订阅者需要1秒钟才能收到该消息的消息将阻止PUBLISH一秒钟或者他们是否独立行动?

如果它们独立行动,那么在坏事开始发生之前会有多少PUBLISH个命令排队?

2 个答案:

答案 0 :(得分:-1)

不要认为答案或评论很清楚。 从外部调用者的角度来看,使用Redis客户端,如果我有单个线程/进程运行,并且该线程/进程背对背订阅了一个频道,然后立即写入该相同的频道,并测试它是否得到了回显的消息。是否有竞争条件b / c订阅未完全注册或在客户端响应并开始编写第一条消息时尚未完成...

也许核心redis服务器支持这两者,并且取决于所使用的客户端,但不确定。...

答案 1 :(得分:-2)

PUBLISH是同步的 - 您还可以在pubsub.c函数publishCommandpubsubPublishMessage中找到此命令的来源。 Redis是单线程应用程序。因此,严格地说,他的所有命令都是同步的。