以下のコードで、パイプラインのタイムアウトは 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では、セットの「キー」にたくさんのメンバーがいます。コードが最後にある場合、常に次のようなエラーが返されます。
error Error while reading from socket: ('timed out',)
socket_timeout の値を 10 に変更すると、ok が返されます。
パラメータ「socket_timeout」は接続タイムアウトを意味しませんか? しかし、応答タイムアウトのようです。
redis-py のバージョンは 2.6.7 です。