我正在考虑使用MGET或pipeline,但在MGET上似乎找不到我要查找的信息
MGET
我的用例是用MGET或pipeline替换50个GET调用
pipeline
GET
到目前为止,我发现的是:
当我们使用pipeline时,不能保证命令会一个接一个地执行,而其他客户端命令可能会在两个命令之间执行。这意味着当我们使用pipeline对GET命令进行分组时,redis将不会被阻塞O (50 ),并且其他客户端将有机会执行它们的命令(50是我分组的GET调用的数量)
另一方面,对于命令MGET,我无法找到它如何工作的信息-当我们使用50个键调用MGET时,该命令是否会阻塞redis实例,直到它获得所有的键?MGET是如何工作的?
发布于 2020-05-01 04:32:45
因为Redis是单线程的,所以任何一个命令都会被阻塞,直到它完成。包括MGET。
管道只是批处理命令的一种方式,它们不会阻塞其他客户端。
因此:MGET将阻塞,而管道不会。
https://stackoverflow.com/questions/61529777
相似问题