우리는 redis-py 패키지를 통해 크기 2.3GB의 피클 링 된 개체를 설정하려고합니다. 다음 오류가 발생했습니다.깨진 파이프 오류 Redis
BrokenPipeError: [Errno 32] Broken pipe
redis.exceptions.ConnectionError: Error 104 while writing to socket. Connection reset by peer.
근본 원인을 알고 싶습니다. 그것은 서버 측 또는 클라이언트 측에서 입출력 버퍼 제한으로 인한 것입니까? RESP 프로토콜에 대한 제한 사항 때문입니까? Redis에 저장할 수있는 2.3Gb의 단일 값 (바이트)이 있습니까?
import redis
r = redis.StrictRedis(host='10.X.X.X', port=7000, db=0)
pickled_object = pickle.dumps(obj_to_be_pickled)
r.set('some_key', pickled_object)
클라이언트 측 오류
BrokenPipeError: [Errno 32] Broken pipe
/usr/local/lib/python3.4/site-packages/redis/connection.py(544)send_packed_command()
self._sock.sendall(item)
서버 측 오류
31164:M 04 Apr 06:02:42.334 - Protocol error from client: id=95 addr=10.2.130.144:36120 fd=11 name= age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=16384 qbuf-free=16384 obl=42 oll=0 omem=0 events=r cmd=NULL
31164:M 04 Apr 06:07:09.591 - Protocol error from client: id=96 addr=10.2.130.144:36139 fd=11 name= age=9 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=40 qbuf-free=32728 obl=42 oll=0 omem=0 events=r cmd=NULL
레디 스 버전 : 3.2.8/64 비트