redis-py를 통해 Python의 Redis를 사용하여 JSON을 정렬 된 집합에 저장하고 있습니다.redis-py - ConnectionError : 원격 종료시 소켓이 닫힙니다.
Redis에서 일정량의 데이터를 가져올 때까지 모든 것이 제대로 작동합니다. 난 단지 20 개 항목을 요청하고 있습니다로
redis.StrictRedis(host='localhost', port=6379, db=12)
redis_client.zrange('key', 0, 20, 'desc')
는 잘 작동합니다.
는 최대한 빨리 35 위에 새로운 것을 시도로 내가 얻을 :
ConnectionError: Socket closed on remote end
내가 주위 작업을 시도했습니다 5 세트에서 쿼리를 "청크"하지만 내가 레디 스 너무 빨리 치고있어 보인다 5라는 많은 쿼리를 통해 여전히 예외가 발생할 수 있습니다.
내가 어떻게 든 재구성 중입니까?
저는 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
적은 데이터를 보관 또는 예외가 사라질 것 한 번에 적은 항목을 요청하는 것을 볼 수 있습니다.
코드는 기본 redis 설정으로 내 redis 2.6.16 installatoin에서 올바르게 작동합니다. 또한 12000까지의 더 큰 항목, 즉'r.zrange ('test', 0, 12000, 'desc')'에서도 작동합니다. 귀하의 설정이 기본 설정과 다른가요? – mhawke
내가 아는 것은 아닙니다. 나는 그것을 설치했다. 당신이 볼 특정 설정? – user3740332
timeout, tcp-keepalive, 복제 설정 - 네트워크 또는 서버로드에 영향을 미치는 모든 것. 테스트하는 동안 Redis 서버가로드되어 있습니까? 아니면 테스트 전용입니까? – mhawke