如何设置redis超时等待redis-py中的管道响应?

 朱鹏飞0521 发布于 2023-01-12 17:04

在下面的代码中,管道超时是2秒?

client = redis.StrictRedis(host=host, port=port, db=0, socket_timeout=2)
pipe = client.pipeline(transaction=False)
for name in namelist:
    key = "%s-%s-%s-%s" % (key_sub1, key_sub2, name, key_sub3)
    pipe.smembers(key)
pipe.execute()

在redis中,set"key"中有很多成员.它始终返回错误,如下所示:

error Error while reading from socket: ('timed out',)

如果我将socket_timeout值修改为10,则返回ok.
参数"socket_timeout"不是指连接超时吗?但它看起来像响应超时.
redis-py版本是2.6.7.

1 个回答
  • 我在github上问了redis-py的作者andymccurdy,答案如下:

    如果您使用的是redis-py <= 2.9.1,则socket_timeout既是套接字连接的超时,也是读取/写入套接字的超时.我最近推了一个更改(465e74d),引入了一个新选项socket_connect_timeout.这允许您为socket.connect()指定不同的超时值,与socket.send/socket.recv()不同.此更改将包含在2.10中,该版本将于本周晚些时候发布.

    redis-py版本是2.6.7,因此它既是套接字连接的超时,也是读取/写入套接字的超时.

    2023-01-12 17:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有