redis-py - ConnectionError:Socket在远程端关闭 - 重载?

时间:2014-06-14 12:16:45

标签: python redis redis-py

我通过redis-py使用Python中的Redis将JSON存储在有序集合中。

一切正常,直到我尝试从Redis中获取一定数量的数据。


redis.StrictRedis(host='localhost', port=6379, db=12) 
redis_client.zrange('key', 0, 20, 'desc')

工作正常,因为我只要求20个条目。

一旦我尝试35以上的任何东西,我就会得到:

ConnectionError: Socket closed on remote end

我尝试通过“分块”查询5组中的查询来解决这个问题,但似乎我很快就遇到了很多5的查询,这仍然会导致异常。

我是不是以某种方式DDOSing redis?


我在Windows和Ubuntu上都试过了。

上周我实际上一次最多可以获得100个条目,如果我以10个为一组进行分块,那么分块就可以了,但从那以后我的Redis服务器似乎变得更加敏感了。


这是一个重现错误的小脚本。

import redis
import ujson as json

r = redis.StrictRedis(host="localhost", port=6379, db=12)
dummy_json = {"data":"hfoiashflkasdjaisdäjpagufeiaghaifhaspdas", 
          "more": "sdasdpjapsfdjapsofjaspofjsapojfpoasjfpoajfp",
          "more1": "sdasdpjapsfdjapsofjaspofjsapojfpoasjfpoajfp",
          "more2": "sdasdpjapsfdjapsofjaspofjsapojfpoasjfpoajfp",
          "more3": "sdasdpjapsfdjapsofjaspofjsapojfpoasjfpoajfp",
          "more4": "sdasdpjapsfdjapsofjaspofjsapojfpoasjfpoajfp"}

for score in xrange(0, 6000):
    dummy_json["score"]=score
    r.zadd("test", score, json.dumps(dummy_json))

result = r.zrange('test', 0, 200, 'desc')
print result

您会看到,如果您使dummy_json保留较少的数据或一次请求较少的条目,则异常将消失。

1 个答案:

答案 0 :(得分:0)

好的,我完全清除了redis并重新安装 - >错误消失了。 我必须在睡眠不足的地方改变配置。谢谢!