【问题标题】:redis client pipeline does not work in twemproxy environmentredis 客户端管道在 twemproxy 环境中不起作用
【发布时间】:2013-12-27 04:10:19
【问题描述】:

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

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的问题?

【问题讨论】:

    标签: redis redis-py twemproxy


    【解决方案1】:

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

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

    【讨论】:

    • 在这种情况下redis-py只是一个一个发送命令。这不是一个 redis MULTI 命令。
    【解决方案2】:

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

    pipe = r.pipeline(transaction=False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      相关资源
      最近更新 更多