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 답글이 올라오면 이메일로 알려드리겠습니다.