[REDIS] 레디 스 연결을 close 이벤트에서 사라
REDIS레디 스 연결을 close 이벤트에서 사라
우리 레디 스 구성에서 우리는 세트 제한 시간이 7 초
node_redis에서 우리는 레디 스 연결 준비 및 최종 이벤트를 처리
client.on("ready", function() {
logger.info("Connection Successfully Established to ", this.host, this.port);
}
client.on("end", function() {
logger.fatal("Connection Terminated to ", this.host, this.port);
}
샘플 로그
그러나 어떤 경우에는 (아마 대부분의 클라이언트에게 알리지 않고 연결을 닫는 레디 스) 우리는 명령 대기열이 쌓여 점점 요청이 시간까지 [응답을 얻기 위해 너무 많은 시간을내어 close 이벤트를 감지 할 수 클라이언트 노드 레디 스하는 참조 ]. 이러한 모든 경우에 명령 콜백 close 이벤트에서 사라이 오류 레디 스 연결로 반환됩니다. 심지어 대기 후 너무 많은. 그것은 일반적인 종료 이벤트가 발생하지 이후이 시간 만료로 인해 문제가되지 않는 것처럼 보인다.
http://code.google.com/p/redis/issues/detail?id=368 - 문제는 다음과 비슷한 것 같다
이 레디 스에서 일어나는 알려진 것입니까?
[전송 및 응답 다시 수신] 임계 값을 초과하는 대신 클라이언트 실속 만드는,이 경우에 오류가 응답하지 않아야을 명령의 실행을 지정하는 방법이 있나요?
또는 socket_timeout 같은 이러한 경우 가까운 이벤트를 트리거의 anyother 방법은 무엇입니까?
또는 우리는 우리의 레디 스 측에서 뭔가를 확인해야합니까? 우리는 우리의 레디 스 디버그 수준에서 로그 모니터링하고 우리는이 문제와 관련된 유용한 아무것도 발견
우리는 디버그 모드에서 노드 레디 스를 실행하면 우리는 분명히 클라이언트가 요청 명령 큐에 쌓여하기로 중단 된 지 볼 수 있습니다. 우리는 flush_on_error 기능 내부의 이유와 큐 길이를 기록. 우리는 장애인 offline_queuing 유지했다.
샘플 로그인
실패한 요청의 응답 시간 : 30388 MS [이 명령 대기열에 대기에 따라 달라집니다. 먼저 남자 대기 최대 응답 시간과 사람 덜 그 다음이 있습니다]
일반적인 응답 시간 : 1ms의
PS : 우리는 너무 node_redis에 문제를 제기했다
해결법
-
==============================
1.우리는뿐만 아니라 레디 스와 관련하여 문제의 무리가 있었다. 그것이 클라이언트를 이야기하지 않고 연결을 종료 할 것 같다. 우리는 서버의 시간 제한 문제가 가능성이 있었다 것으로 나타났습니다. 이것은 우리가 사용하는 솔루션이며 우리는 7 월 이후 문제가 없었어요.
우리는뿐만 아니라 레디 스와 관련하여 문제의 무리가 있었다. 그것이 클라이언트를 이야기하지 않고 연결을 종료 할 것 같다. 우리는 서버의 시간 제한 문제가 가능성이 있었다 것으로 나타났습니다. 이것은 우리가 사용하는 솔루션이며 우리는 7 월 이후 문제가 없었어요.
var RETRY_EVERY = 1000 * 60 * 3; var startTimer = function(){ console.log('Begin the hot tub!') setInterval(function(){ try{ client.set('hot',new Date()); console.log(client.get('hot')) } catch(e){ console.log(e); } },RETRY_EVERY) }();
고려 그것이 성능 문제가되지 않습니다, 단 하나의 전화 3 분마다입니다)
-
==============================
2.oconnecp의 대답에 관해서, 당신은 할 수 없습니다
oconnecp의 대답에 관해서, 당신은 할 수 없습니다
setInterval(client.ping(), 1000 * 60 * 30);
from https://stackoverflow.com/questions/11429020/redis-connection-gone-from-close-event by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어느되는 NoSQL 데이터베이스는 대량 삽입 / 쓰기에 가장 적합합니다? (0) | 2020.01.19 |
---|---|
[REDIS] NOAUTH 인증이 필요합니다. Laravel + 레디 스 (0) | 2020.01.19 |
[REDIS] 작업자 종료 후 근무 여전히 계산 Heroku가 삼나무 스택에 Resque이 존재 (0) | 2020.01.19 |
[REDIS] 모방 MASTER / MASTER를 레디 스? 또는 다른 것? (0) | 2020.01.19 |
[REDIS] 레디 스 연결 오류는 푸른 VM에 Booksleeve 레디 스 클라이언트를 사용하는 경우 (0) | 2020.01.19 |