gpt4 book ai didi

客户端断开连接时的 redis lpop 行为

转载 作者:可可西里 更新时间:2023-11-01 11:20:35 44 4
gpt4 key购买 nike

使用 LPOP 时如果客户端在 redis 服务器执行命令时断开连接,弹出的项目会发生什么情况?

更具体地说,元素是否在未交付的情况下被丢弃,或者由于命令未成功而保留在内存中?

感谢任何帮助/指点。

最佳答案

处理弹出的实际逻辑的代码部分忽略了客户端状态。 Redis 不会等待响应发送完成才能完成对命令的处理。这样等待会很慢,尤其是单线程。

您可以查看处理 BLPOP 的代码部分,了解这是如何发生的:

   // here is where redis actually pops from the list
robj *value = listTypePop(o,where);
serverAssert(value != NULL);

// now it ads the reply to the client's queue (c is the client)
// but as you can see there is no return code from these methods
// and redis doesn't actually send anything when addReply is called
addReplyMultiBulkLen(c,2);
addReplyBulk(c,c->argv[j]);
addReplyBulk(c,value);

关于客户端断开连接时的 redis lpop 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36158960/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com