KEYS

레디스 개발자 교육 신청 레디스 정기점검/기술지원
Redis Technical Support
레디스 엔터프라이즈 서버
Redis Enterprise Server

Key들을 pattern으로 조회

사용법은 keys pattern 이다.
glob-style pattern을 사용할 수 있다.
* : 모든 문자 매치(match)
? : 1개 문자 매치(match)
[alphabet] : 대괄호 안에 있는 문자 매치(match)

Example

명령>keys *   모든 key 조회
결과> 0) user-1
1) user-2
2) user-30
3) myset
4) meset
5) miset
명령>keys user-*   user-로 시작하는 key 조회
결과> 0) user-1
1) user-2
2) user-30
명령>keys *set   set로 끝나는 key 조회
결과> 0) myset
1) meset
2) miset
명령>keys user-?   user-로 시작하고 한 문자만 있는 key 조회
결과> 0) user-1
1) user-2
명령>keys m[ye]set   m으로 시작하고 y or e 가 있고 set으로 끝나는 key 조회
결과> 0) myset
1) meset

애니메이션 보기


Data type 지정

데이터 타입을 지정해서 해당 키들만 조회할 수 있습니다. 지정할 수 있는 데이터 타입은 string, list, set, zset, hash, stream 입니다.

  • 데이터 타입을 지정하면 전체 키 집합에서 찾는 것이 아니고 데이터 타입별로 별도로 관리되는 Sorted Set에서 키를 조회하므로 서버에 부담을 주지 않습니다.
  • 데이터 타입을 지정하면 sort 옵션을 사용하지 않아도 소트되어 조회됩니다.
  • "keys user* string" 이렇게 사용하면 user로 시작하는 키에 바로 접근해서 조회합니다.
  • 데이터 타입을 여러 개 지정하면 타입별로 소트된 키 리스트가 조회됩니다.

Example

명령>keys * string
결과>1) "key1"
2) "key2"
3) "key3"
이 기능은 Enterprise 서버에서 사용 가능합니다.

옵션 지정

  • TYPE: 키의 데이터 타입을 표시합니다.
  • ENCODING: 키의 내부 데이터 타입을 표시합니다.
  • VALUE: String 일 때 값을 표시합니다. 이 옵션은 String 일 때만 적용됩니다.
  • STRLEN: String 일 때 문자열의 길이를 표시합니다. 이 옵션은 String 일 때만 적용됩니다.
  • LEN: 키의 길이(맴버 수)를 표시합니다. List는 llen, Set은 scard, ZSet은 zcard, Hash은 hlen, Stream은 xlen 명령을 실행한 것과 같습니다. String은 1이 표시됩니다.
  • MEMORY: 사용 메모리를 표시합니다. 이것은 memory usage key를 실행한 것과 같습니다.
  • TTL: 만료시간(expire time)을 초 단위로 표시합니다. 만료시간이 설정되어 있지 않으면 -1을 표시합니다.
  • PTTL: 만료시간(expire time)을 1/1000초(millisecond) 단위로 표시합니다. 만료시간이 설정되어 있지 않으면 -1을 표시합니다.
  • IDLETIME: 키를 참조 후 지난 시간을 초로 표시합니다. 최근에 이 키를 사용했는지, 얼마나 오랜동안 이 키를 사용하지 않았는지를 확인할 수 있습니다.
  • SLOT: 키에 슬롯을 표시합니다. Cluster는 물론이고 Standalone에서도 나옵니다.

Example

명령>keys * type
결과> 1) "key"
2) "string"
3) "mylist"
4) "list"
5) "myset"
6) "set"
명령>keys * len
결과> 1) "key"
2) "1"
3) "mylist"
4) "10"
5) "myset"
6) "25"
명령>keys * memory
결과> 1) "key"
2) "54"
3) "mylist"
4) "256"
5) "myset"
6) "614"
이 기능은 Enterprise 서버에서 사용 가능합니다.
  • Data type와 옵션을 같이 지정할 수 있습니다.

Example

명령>keys * string value
결과> 1) "key1"
2) "value1"
3) "key2"
4) "value2"
5) "key3"
6) "value3"
명령>keys * string strlen
결과> 1) "key1"
2) "6"
3) "key2"
4) "6"
5) "key3"
6) "6"

소트 옵션 지정

  • SORT/ASC/DESC: 결과를 소트합니다.

Example

명령>keys * sort
결과> 1) "key1"
2) "key2"
3) "key3"
명령>keys * desc
결과> 1) "key3"
2) "key2"
3) "key1"
이 기능은 Enterprise 서버에서 사용 가능합니다.

COUNT/TOP 옵션 지정

  • COUNT integer: 가져오는 키 개수를 제한합니다. 조회 시간을 줄일 수 있습니다.
  • TOP integer: 소트 후 보여주는 키 개수를 제한합니다.

Example

명령>keys * count 2
결과> 1) "key2"
2) "key1"
명령>keys * sort top 2
결과> 1) "key1"
2) "key2"
이 기능은 Enterprise 서버에서 사용 가능합니다.

TABLE 옵션 지정

  • table: 테이블 형태로 보여줍니다.

Example

명령>keys * string type memory   table
결과> 0) "key"     "type"     "memory"
1) "key1"     "string"     "52"
2) "key2"     "string"     "64"
이 기능은 Enterprise 서버에서 사용 가능합니다.

명령문

KEYS pattern   [string|list|set|zset|hash|stream]
  [type|encoding|value|strlen|len|memory|ttl|pttl|idletime]
  [sort|asc|desc]
  [count <integer>] [top <integer>]
  [table]

  • 이 명령은 version 1.0.0 부터 사용할 수 있다.
  • 논리적 처리 소요시간은 O(N)이다. N은 리턴된 키 개수가 아니고 데이터베이스에 있는 모든 키 개수이다.
관련 명령 SCAN, DBSIZE
Clients for Java Jedis, Lettuce, Redisson
Clients for C Hiredis

명령을 실습해 보시려면 여기를 클릭해서 Redis Web Client 를 실행하세요.


<< UNLINK KEYS SCAN >>

질문하거나 댓글을 보려면 클릭하세요.  댓글수 :    조회수 :

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