无法让twemproxy与Python Redis配合使用

4
我安装了0.4.0版本的nutcracker,并在配置文件中有以下内容:
redis:
    listen: 127.0.0.1:22121
    hash: fnv1a_64
    distribution: ketama
    auto_eject_hosts: true
    redis: true
    server_retry_timeout: 2000
    server_failure_limit: 10
    servers:
    - 127.0.0.1:6379:1

代码:

 >>> client = redis.StrictRedis(host='127.0.0.1', port=22121, db=1)
 >>> client.set('a', 'b')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/sudheer/workspace/pvenvs/p2s/lib/python2.7/site-packages/redis/connection.py", line 137, in _read_from_socket
    (e.args,))
redis.exceptions.ConnectionError: Error while reading from socket: ('Connection closed by server.',)

如何使Twemproxy与redis-py配合使用?

你是否无法切换到支持集群的稳定版本Redis 3.0? - DhruvPathak
Redis集群是获取自动分片和高可用性的首选方式。目前它还没有完全准备好投入生产,但最终进入了beta阶段,因此我们建议您开始尝试使用它。您可以在集群教程中获取有关Redis集群的更多信息。 一旦Redis集群可用,并且如果您的语言有符合Redis集群标准的客户端,Redis集群将成为Redis分区的事实标准。 - Sudheer
这是Redis网站上一个过时的文档。请参见:https://dev59.com/BWUp5IYBdhLWcg3w669C - DhruvPathak
由于我有 Redis 3.2.8,但仍然遇到了 Sudheer 的相同问题,并且按照他的答案解决了它,因此我点了赞。我想知道除了被限制在 DB 0 中之外是否还有其他方法。 - A. B
1个回答

3

我找到了解决问题的方法。当Python Redis客户端的配置为127.0.0.1:6379?db=1时,会发送SELECT命令。db=1触发了不受nutcracker支持的SELECT命令。现在我将其改为db=0,一切正常运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接