Redis TCP-KEEPALIVE Parameter

Redis Server Course Redis Technical Support Redis Enterprise Server

Redis tcp-keepalive parameter

레디스 설정 파일인 redis.conf 에 있는 tcp-keepalive 파라미터에 대한 설명입니다.  

설명

클라이언트가 죽었을때 레디스 서버가 확인해서 클라이언트와의 접속을 제거하는 시간을 나타낸다.   timeout 파리미터를 설정해 놓으면 되겠지만, 이 경우는 클라이언트는 살아 있지만 오랫동안 아무런 작업도 하지 않는다고 무조건 커넥션을 끊지 않도록 timeout 0으로 했을 때 사용한다.   클라이언트가 죽었지만 레디스 서버에서 연결을 잡고 있을 때 tcp-keepalive 시간 마다 클라이언트를 확인해서 응답이 없으면 커넥션을 끊는다.   좀 더 자세히 설명하면, tcp-keepalive 60이면 60초마다 클리이언트에 packet을 보내고 응답이 없으면 20초 마다 3번 더 packet을 보낸다. 그래도 응답이 없으면 소켓을 닫는다.   설정 시간은 초이다. 0으로 설정하면 이 기능을 사용하지 않는 것이다.
이것은 클라이언트를 생성할 때(createClient) 소켓 설정(setsockopt)한다. 그러므로 별도의 cron이 동작해서 커넥션을 끊는 것은 아니다.   버전 2.6.10 부터 사용 가능하고, 3.2.1부터 기본값이 300이다.

간추린 소스 코드


redis-cli에서는 15초 마다 packget을 보내게 설정되어 있다.

사용 방법

tcp-keepalive 0
tcp-keepalive 60
tcp-keepalive 300

<< TIMEOUT LAZYFREE >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.

패턴으로 값을 조회하고 삭제할 수 있어요.
리스트에서 "lls mylist user*" 이렇게 조회할 수 있구요.
user가 들어간 값들을 삭제하려면 "lrm mylist user*" 이렇게 하면 됩니다.
List에서는 LLS, LRM, Set에서는 SLS, SRM, ZSet에서는 ZLS, ZRM, Hash에서는 HLS, HRM 을 사용하면 됩니다.
게다가 LS는 소트 기능까지 있습니다. 한번 사용해 보세요. ^^
궁금하신 사항이 있으면 여기로 redisgate@gmail.com 메일 주세요.
 
close
IP를 기반으로 보여집니다.