1

我使用redis-py对redis进行操作,我们的环境使用twemproxy作为redis代理。但是当连接到 twemproxy 时,看起来 clinet 管道不起作用。

import redis

client = redis.StrictRedis(host=host, port=port, db=0)
pipe = client.pipeline()
pipe.smembers('key')
print pipe.execute()

执行方法时抛出异常

redis.exceptions.ConnectionError: Socket closed on remote end

在 twemproxy 环境中,客户端管道不起作用还是 redis-py 的问题?

4

2 回答 2

2

因为不twemproxy支持所有的 redis 命令。

这是实际支持的命令列表https://github.com/twitter/twemproxy/blob/master/src/proto/nc_redis.c

于 2013-12-27T08:15:26.387 回答
1

redis-py 管道默认使用事务,试试这个:

pipe = r.pipeline(transaction=False)
于 2014-04-28T06:07:24.647 回答