Redis 명령 인자
Redis 명령 인자 (Command Arguments)
Redis 명령이 자신의 문서를 프로그램 방식으로 어떻게 노출하는지, COMMAND DOCS가 반환하는 인자 구조를 설명합니다.
COMMAND DOCS 명령은 사용 가능한 Redis 명령에 대한 문서 중심 정보를 반환합니다. 명령이 반환하는 map 응답에는 arguments 키가 포함되어 있고, 이 키에는 명령의 인자를 설명하는 배열이 저장됩니다.
arguments 배열의 각 필드
arguments 배열의 모든 요소는 다음 필드를 가진 map입니다.
- name: 인자의 이름으로, 항상 존재합니다. 인자의 이름은 식별 목적으로만 주어지며 명령의 문법 렌더링에는 표시되지 않습니다. 같은 이름이 전체 인자 트리에 여러 번 나타날 수 있지만, 다른 형제 인자의 이름과는 유일합니다. 이를 통해 각 인자의 고유 식별자(루트에서 인자까지 경로에 있는 모든 이름의 연결)를 얻을 수 있습니다.
- display_text: 인자의 표시 문자열로, 표시 가능한 표현이 있는 인자(oneof/block이 아닌 모든 인자)에 존재합니다. 명령 문법 렌더링에 사용되는 문자열입니다.
- type: 인자의 타입으로, 항상 존재합니다. 인자는 다음 타입 중 하나여야 합니다.
- string: 문자열 인자.
- integer: 정수 인자.
- double: 배정밀도 인자.
- key: 키 이름을 나타내는 문자열.
- pattern: glob 형식 패턴을 나타내는 문자열.
- unix-time: Unix 타임스탬프를 나타내는 정수.
- pure-token: 인자가 토큰, 즉 예약 키워드이며 제공될 수도 있고 아닐 수도 있습니다. 자유 텍스트 사용자 입력과 혼동하지 마세요.
- oneof: 중첩 인자를 위한 컨테이너 타입. 여러 중첩 인자 중 하나를 선택할 수 있게 합니다(아래
XADD예시 참고). - block: 중첩 인자를 위한 컨테이너 타입. 인자를 그룹화하고 속성(예: optional)을 전체에 적용할 수 있게 합니다(아래
XADD예시 참고).
- key_spec_index: key 타입의 모든 인자에 사용할 수 있는 값. 인자에 해당하는 명령의 키 스펙에서 스펙의 0 기반 인덱스입니다.
- token: 인자(사용자 입력) 자체보다 앞에 오는 상수 리터럴.
- summary: 인자에 대한 짧은 설명.
- since: 인자(또는 모듈 명령의 경우 모듈 버전)의 데뷔 Redis 버전.
- deprecated_since: 명령(또는 모듈 명령의 경우 모듈 버전)을 deprecated 처리한 Redis 버전.
- flags: 인자 플래그 배열. 가능한 플래그는 다음과 같습니다.
- value: 인자의 값. _oneof_와 block 이외의 인자 타입에서는 명령 문법의 값을 설명하는 문자열입니다. _oneof_와 block 타입에서는 중첩 인자 배열이며, 각 요소는 이 섹션에서 설명한 map입니다.
예시 (Example)
XADD의 트리밍 절, 즉 [MAXLEN|MINID [=|~] threshold [LIMIT count]]는 최상위에서 block 타입 인자로 표현됩니다.
네 개의 중첩 인자로 구성됩니다.
- trimming strategy(트리밍 전략): 이 중첩 인자는 두 개의 중첩 인자를 가진 oneof 타입입니다. 각 중첩 인자(_MAXLEN_과 MINID)는 _pure-token_으로 타입이 지정됩니다.
- trimming operator(트리밍 연산자): 이 중첩 인자는 두 개의 중첩 인자를 가진 선택적 oneof 타입입니다. 각 중첩 인자(_=_와 ~)는 _pure-token_입니다.
- threshold(임계값): 이 중첩 인자는 _string_입니다.
- count: 이 중첩 인자는 token(LIMIT)이 있는 선택적 _integer_입니다.
다음은 XADD의 arguments 배열입니다.
1) 1) "name"
2) "key"
3) "type"
4) "key"
5) "value"
6) "key"
2) 1) "name"
2) "nomkstream"
3) "type"
4) "pure-token"
5) "token"
6) "NOMKSTREAM"
7) "since"
8) "6.2"
9) "flags"
10) 1) optional
3) 1) "name"
2) "trim"
3) "type"
4) "block"
5) "flags"
6) 1) optional
7) "value"
8) 1) 1) "name"
2) "strategy"
3) "type"
4) "oneof"
5) "value"
6) 1) 1) "name"
2) "maxlen"
3) "type"
4) "pure-token"
5) "token"
6) "MAXLEN"
2) 1) "name"
2) "minid"
3) "type"
4) "pure-token"
5) "token"
6) "MINID"
7) "since"
8) "6.2"
2) 1) "name"
2) "operator"
3) "type"
4) "oneof"
5) "flags"
6) 1) optional
7) "value"
8) 1) 1) "name"
2) "equal"
3) "type"
4) "pure-token"
5) "token"
6) "="
2) 1) "name"
2) "approximately"
3) "type"
4) "pure-token"
5) "token"
6) "~"
3) 1) "name"
2) "threshold"
3) "type"
4) "string"
5) "value"
6) "threshold"
4) 1) "name"
2) "count"
3) "type"
4) "integer"
5) "token"
6) "LIMIT"
7) "since"
8) "6.2"
9) "flags"
10) 1) optional
11) "value"
12) "count"
4) 1) "name"
2) "id_or_auto"
3) "type"
4) "oneof"
5) "value"
6) 1) 1) "name"
2) "auto_id"
3) "type"
4) "pure-token"
5) "token"
6) "*"
2) 1) "name"
2) "id"
3) "type"
4) "string"
5) "value"
6) "id"
5) 1) "name"
2) "field_value"
3) "type"
4) "block"
5) "flags"
6) 1) multiple
7) "value"
8) 1) 1) "name"
2) "field"
3) "type"
4) "string"
5) "value"
6) "field"
2) 1) "name"
2) "value"
3) "type"
4) "string"
5) "value"
6) "value"
더 알아보기 (Learn more)
COMMAND DOCS— 명령 문서 정보를 프로그램 방식으로 반환- Redis 명령 키 스펙 —
key_spec_index가 참조하는 키 스펙 구조