client
Redis CLIENT
CLIENT
CLIENT ID
현재 연결된 CLIENT ID를 조회한다.
CLIENT ID는 CLIENT KILL|UNBLOCK 등에 사용된다.
ID는 새 연결마다 1씩 증가한다.
ID가 크면 나중에 연결된 것이다.
- Ver 5.0 부터 사용할 수 있습니다.
- 논리적 처리 소요시간은 O(1)입니다.
CLIENT UNBLOCK <id> [TIMEOUT|ERROR]
BRPOP 같은 blocking 명령을 실행하고 대기중인 클라이언트를 해제(UNBLOCK) 시킵니다.
디폴트 옵션는 timeout 입니다.
디폴트 옵션의 경우 클라이언트를 해제되고 메시지는 없습니다.
Error 옵션을 사용하면 blocking 클라이언트는 해제시키고
에러 메시지(-UNBLOCKED client unblocked via CLIENT UNBLOCK)를 받습니다.
Example
명령> client unblock 4
결과> 1
- Ver 5.0 부터 사용할 수 있습니다.
- 논리적 처리 소요시간은 O(log(N))입니다. N은 클라이언트 연결 개수입니다.
클라이언트 id를 server.clients_index rax(radix tree) 구조체에서 찾습니다.
CLIENT TRACKING (on|off) [REDIRECT <id>]
CLIENT TRACKING ON 하면
Client side caching을 사용할 수 있습니다.
REDIRECT 옵션은 subscribe로 메시지를 받을 client id를 지정합니다.
Example
명령> client tracking on redirect 6
결과> OK
- Ver 6.0 부터 사용할 수 있습니다.
- CLIENT TRACKING (on|off) [REDIRECT <id>] [NOLOOP] [[OPTIN]|[OPTOUT]]
- CLIENT TRACKING (on|off) [REDIRECT <id>] [BCAST] [PREFIX first] [PREFIX second]
- 자세한 설명은
Client side caching를 보세요.
- 논리적 처리 소요시간은 O(1)입니다. enableTracking() tracking.c
redirect를 사용하면 O(log(N)) (client id 확인 시간)입니다.
N은 클라이언트 연결 개수입니다.
CLIENT TRACKINGINFO
- 이 옵션은 버전 6.2부터 사용할 수 있습니다.
- Client Trackinginfo 정보를 보여줍니다.
Example
명령> client trackinginfo
결과>
1) "flags"
2) 1) "on"
3) "redirect"
4) (integer) 56
5) "prefixes"
6) (empty array)
- Flags
- off: Client side caching을 사용하지 않을 경우
- on: Client side caching을 사용했을 경우
- bcast: BCAST(broadcasting) 모드를 사용했을 경우
- optin: 클라이언트가 기본적으로 키를 캐시하지 않을 경우
- optout: 클라이언트가 기본적으로 키를 캐시할 경우
- caching-yes: 다음 명령이 키를 캐시합니다. (optin 옵션을 사용했을 경우)
- caching-no: 다음 명령이 키를 캐시하지 않습니다. (optout 옵션을 사용했을 경우)
- noloop: 클라이언트는 자체적으로 수정된 키에 대해 알림을 받지 않을 경우
- broken_redirect: 리디렉션에 사영된 클라이언 ID가 더 이상 유효하지 않을 경우
- Redirect: 리디렉션에 사용된 클라이언트 ID, 없을 경우 -1
- Prefixes: 키 접두사(prefix) 목록
CLIENT GETREDIR
CLIENT TRACKING에서 지정한 redirect id를 조회합니다.
Example
명령> client getredir
결과> 6
- Ver 6.0 부터 사용할 수 있습니다.
- 논리적 처리 소요시간은 O(1)입니다. c->client_tracking_redirection