ls
LS (list)
Redis Developer Course | Redis Technical Support | Redis Enterprise Server |
---|
Key를 조회
사용법은 ls 또는 ls pattern 이다.
ls는 모든 키를 조회합니다.
이 명령은 Enterprise 서버에서 사용 가능합니다.
Example
명령> | ls 아무 옵션이 없으면 모든 key를 조회 |
결과> |
0) user-1 1) user-2 2) user-30 3) myset 4) meset 5) miset |
glob-style pattern을 사용할 수 있습니다.
- * : 모든 문자 매치(match): h*llo -> hllo, heeeello, etc
- ? : 1개 문자 매치(match): h?llo -> hallo, hello, hxllo, etc
- [alphabet] : 대괄호 안에 있는 문자 매치(match): h[ae]llo -> hallo, hello
- [^e] : 대괄호 안에 있는 문자 제외하고 매치(match):
h[^e]llo -> hallo, hbllo, ... 그러나 hello는 제외됨.
- [a-c] : 대괄호 안에 있는 문자 범위로 매치(match): h[a-c]llo -> hallo, hbllo, hcllo
- \ : 위에 사용한 특수문자(*?[^])를 그대로 사용하려면 앞에 \를 붙이세요.
Example
명령> | ls * 모든 key 조회 |
결과> |
0) user-1 1) user-2 2) user-30 3) myset 4) meset 5) miset |
명령> | ls user-* user-로 시작하는 key 조회 |
결과> |
0) user-1 1) user-2 2) user-30 |
명령> | ls *set set로 끝나는 key 조회 |
결과> |
0) myset 1) meset 2) miset |
명령> | ls user-? user-로 시작하고 한 문자만 있는 key 조회 |
결과> |
0) user-1 1) user-2 |
명령> | ls m[ye]set m으로 시작하고 y or e 가 있고 set으로 끝나는 key 조회 |
결과> |
0) myset 1) meset |
Data type 지정
데이터 타입을 지정해서 해당 키들만 조회할 수 있습니다. 지정할 수 있는 데이터 타입은 string, list, set, zset, hash, stream 입니다.
- 데이터 타입을 지정하면 전체 키 집합에서 찾는 것이 아니고
데이터 타입별로 별도로 관리되는 Sorted Set에서 해당 부분의 키를 조회하므로
속도가 빠르고 서버에 부담을 주지 않습니다.
B1 B2 B3 C1 C2 C3 D1 D2 D3
\__C*__/ - 데이터 타입을 지정하면 sort 옵션을 사용하지 않아도 소트되어 조회됩니다.
- "ls user* string" 이렇게 사용하면 user로 시작하는 키에 바로 접근해서 조회합니다.
- 데이터 타입을 여러 개 지정하면 타입별로 소트된 키 리스트가 조회됩니다.
Example
명령> | ls * string |
결과> | 1) "key1" 2) "key2" 3) "key3" |
옵션 지정
- TYPE: 키의 데이터 타입을 표시합니다.
- ENCODING: 키의 내부 데이터 타입을 표시합니다.
- VALUE or VAL: String 일 때 값을 표시합니다. 이 옵션은 String 일 때만 적용됩니다.
- STRLEN: String 일 때 문자열의 길이를 표시합니다. 이 옵션은 String 일 때만 적용됩니다.
- LEN: 키의 길이(맴버 수)를 표시합니다. List는 llen, Set은 scard, ZSet은 zcard, Hash은 hlen, Stream은 xlen 명령을 실행한 것과 같습니다. String은 1이 표시됩니다.
- MEMORY or MEM: 사용 메모리를 표시합니다. 이것은 memory usage key를 실행한 것과 같습니다.
- TTL: 만료시간(expire time)을 초 단위로 표시합니다. 만료시간이 설정되어 있지 않으면 -1을 표시합니다.
- PTTL: 만료시간(expire time)을 1/1000초(millisecond) 단위로 표시합니다. 만료시간이 설정되어 있지 않으면 -1을 표시합니다.
- IDLETIME: 키를 참조 후 지난 시간을 초로 표시합니다. 최근에 이 키를 사용했는지, 얼마나 오랜동안 이 키를 사용하지 않았는지를 확인할 수 있습니다.
- SLOT: 키에 슬롯을 표시합니다. Cluster는 물론이고 Standalone에서도 나옵니다.
- TIME: 키의 update_mstime(생성 일시 또는 최종 수정 일시)를 표시합니다.
- EXPIRE_KEYS: 멤버(member)에 만료시간(expire time)이 설정된 키들을 조회합니다. TTL과 조합하면 멤버에 설정된 가장 큰 expire time을 조회합니다.
- DEFAULT or DF: type, len, table 옵션을 적용합니다.
Example
명령> | ls * type |
결과> |
1) "key" 2) "string" 3) "mylist" 4) "list" 5) "myset" 6) "set" |
명령> | ls * len |
결과> |
1) "key" 2) "1" 3) "mylist" 4) "10" 5) "myset" 6) "25" |
명령> | ls * memory |
결과> |
1) "key" 2) "54" 3) "mylist" 4) "256" 5) "myset" 6) "614" |
- Data type와 옵션을 같이 지정할 수 있습니다.
Example
명령> | ls * string value |
결과> |
1) "key1" 2) "value1" 3) "key2" 4) "value2" 5) "key3" 6) "value3" |
명령> | ls * string strlen |
결과> |
1) "key1" 2) "6" 3) "key2" 4) "6" 5) "key3" 6) "6" |
소트 옵션 지정
- SORT/ASC/DESC: 결과를 소트합니다.
Example
명령> | ls * sort |
결과> |
1) "key1" 2) "key2" 3) "key3" |
명령> | ls * desc |
결과> |
1) "key3" 2) "key2" 3) "key1" |
COUNT/TOP 옵션 지정
- COUNT integer: 가져오는 키 개수를 제한합니다. 조회 시간을 줄일 수 있습니다.
- TOP integer: 소트 후 보여주는 키 개수를 제한합니다.
Example
명령> | ls * count 2 |
결과> |
1) "key2" 2) "key1" |
명령> | ls * sort top 2 |
결과> |
1) "key1" 2) "key2" |
TABLE 옵션 지정
- table: 테이블 형태로 보여줍니다.
Example
명령> | ls * string type memory table |
결과> |
0) "key" "type" "memory" 1) "key1" "string" "52" 2) "key2" "string" "64" |
명령문
LS [pattern]
[string|list|set|zset|hash|stream]
[type|encoding|value|strlen|len|memory|ttl|pttl|idletime|slot|time|expire_keys|default]
[table]
[sort|asc|desc]
[count <integer>] [top <integer>]
- 이 명령은 Enterprise version 6.1.0 부터 사용할 수 있다.
- 논리적 처리 소요시간: Datatype을 지정했을 경우 O(log(N)+M)이다.
N은 데이터타입에 속한 키 개수이고, M은 리턴하는 키 개수입니다.
지정하지 않았을 경우: O(N)이다. N은 리턴된 키 개수가 아니고 데이터베이스에 있는 모든 키 개수이다.
관련 명령 | SCAN, DBSIZE |
<< KEYS | LS | SCAN >> |
---|
Email
답글이 올라오면 이메일로 알려드리겠습니다.