为什么Redis Publish操作的时间复杂度是O(M+N)

问题描述 投票:0回答:1

根据 Redis 网站,发布的时间复杂度为 O(N+M)。

时间复杂度:O(N+M),其中N是订阅接收通道的客户端数量,M是订阅模式的总数(任何客户端)。

我可能是错的,但是为什么它不能使用一些异步API向所有客户端异步发送消息(因为将消息写入网络流是I/O绑定操作)?

redis
1个回答
0
投票

快速回答不,你不能。 tcp 套接字本质上是成对的,这就是 redis 使用的。

如果您可以接受丢失数据并且拥有正确的网络,您可以使用 udp,这更好,但仍然是一个问题。

异步也不是魔法,你仍然在这样做......你的机器上有 32 个核心,redis 大部分是单线程的,所以也许你可以利用额外的 31 个核心(忽略我认为不小的锁成本)有 31 个额外的核心不是复杂度差异

© www.soinside.com 2019 - 2024. All rights reserved.