[Redis] Keys 명령어 설명 및 예제

' ); document.write( '' ); (adsbygoogle = window.adsbygoogle || []).push({}); } else if (window.innerWidth < 768) { document.write( '‘ ); (adsbygoogle = window.adsbygoogle || []).push({}); }

 

Keys 관련 명령어 예제

 

– KEYS

설명(KEYS) : 패턴에 일치하는 모든키를 반환합니다. 이 연산의 시간복잡도는 O(N)이지만 시간은 상당히 낮다. 레디스는 40밀리 초 내에 백만개의 데이터를 스캔할 수 있다.

주의 : KEYS 명령어는 조심스럽게 사용해야 하며 대규모 데이터베이스에서 실행되면 성능이 저하 될 수 있다.

시간복잡도 : O(N)

redis-cli > KEYS pattern

PATTERN : 

  • h?llo => hello, hallo, hxllo
  • h*llo => hllo, heeeello, haaaallo
  • h[ae]lo => hello, hallo, hillo (X)
  • h[^e]llo => hallo, hillo, hello (X)
  • h[a-b]llo => hallo, hbllo
 redis > MSET one 1 two 2 three 3 four 4 “OK” redis > KEYS *o* 1) “one” 2) “two” 3) “four” redis > KEYS t?? 1) “two” redis > KEYS * 1) “one” 2) “two” 3) “three” 4) “four”

 

 

– DEL

설명(DEL) : 특정요소의 키를 제거합니다.

시간복잡도 : O(N) 여기서 N은 제거할 키 갯수

redis-cli > DEL key [key …]

 

 redis > MSET one 1 two 2 three 3 four 4 “OK” redis > DEL one two (integer) 2

 

 

– EXISTS

설명(EXISTS) : 키가 있는지 확인. 3.0.3 이상부터 단일이 아닌 여러개의 키를 지정할 수 있다.

설명(RPUSHX) : 키가 이미 있고 목록을 보유하고 있는 경우에만 목록의 마지막에 값을 삽입합니다.

시간복잡도 : O(1)

redis-cli > EXISTS key [key …]

 

 redis > SET key “hello” “OK” redis > EXISTS key (integer) 1 redis > EXISTS key1 (integer) 0

 

 

– EXPIRE, PEXPIRE, PERSIST

설명(EXPIRE) : 리스트 키에 타임아웃을 초 단위로 설정합니다. PERSIST 명령어로 타임아웃을 해제 할 수 있습니다.

설명(PEXPIRE) : 리스트 키에 타임아웃을 밀리 초 단위로 설정합니다. PERSIST 명령어로 타임아웃을 해제 할 수 있습니다.

설명(PERSIST) : 리스트 키에 타임아웃을 해제합니다.

시간복잡도 : O(1)

redis-cli > EXPIRE key seconds

redis-cli > PERSIST key

 

 redis > SET key “World” “OK” redis > EXPIRE key 10 (integer) 1 redis > TTL key (integer) 10 redis > PERSIST key (integer) 1 redis > TTL key (integer) -1

 

 

– DUMP, RESTORE

설명(DUMP) : 키에 저장된 값을 Redis 특정 형식으로 직렬화 하여 사용자에게 반환 

설명(RESTORE) : DUMP로 직렬화 된 값을 역 직렬화하여 얻은 값과 연돤되 키를 작성

시간복잡도 : O(N)

직렬화 형식의 의미론적 특징

  • 오류가 감지되는지 확인하는데 사용되는 64비트 체크섬이 포함. RESTORE 명령은 직렬화 된 값을 사용하여 키를 합성하기 전에 체크섬을 확인
  • 값은 RDB에서 사용하는 것과 동일한 형식으로 인코딩 됌
  • RDB버전은 일련화 된 값 내에 인코딩되므로 호환되지 않는 RDB형식의 다른 Redis 버전은 처리하지 않음

redis-cli > DUMP key 

redis-cli > RESTORE key ttl serialized-value [REPLACE] 

 

 redis > SET key 10 “OK” redis > DUMP key “u0000xC0nbu0000ײxBBxFAxA7xB7xE9x83” redis > DEL key (integer) 1 redis > RESTORE key 0 “u0000xC0nbu0000ײxBBxFAxA7xB7xE9x83” “OK”

 

 

– EXPIREAT, PEXPIREAT

설명(EXPIREAT) : EXPIRE 와 전부 동일하지만 초가 아닌 Unixstamp 만 차이가 있다. 주어진 키가 앞으로 주어진 시간에 만료되도록 지정하는데 직접 사용이 가능

설명(EXPIREAT) : EXPIREAT 와 전부 동일하지만 Unixstamp 초가 아닌 밀리초만 차이가 있다. 주어진 키가 앞으로 주어진 시간에 만료되도록 지정하는데 직접 사용이 가능

시간복잡도 : O(1)

redis-cli > EXPIREAT key timestamp

redis-cli > PEXPIREAT key millieseconds-timestamp 

 

 redis > SET key “hello” “OK” redis > EXISTST key (integer) 1 redis > EXPIREAT key 1293840000 (integer) 1 redis > EXISTS key

 

 

 

– MOVE

설명(MOVE) : 특정 키를 다른 데이터베이스로 옮긴다.

시간복잡도 : O(1)

redis-cli > MOVE key db

 

 redis > SET key 1 (integer) 1 redis > MOVE key 1 (integer) 1 redis > GET key  (nil) redis > SELECT 1 “OK” redis > GET key “1”

 

 

– TTL, PTTL

설명(TTL) :해당 키에 타임아웃이 얼마나 남아 있는지 초단위로 반환한다.

설명(PTTL) :해당 키에 타임아웃이 얼마나 남아 있는지 밀리초단위로 반환한다.

-2를 반환하면 값이 없는 것이고, -1을 반환하면 기한이 없다.

시간복잡도 : O(1)

redis-cli > TTL key

redis-cli > PTTL key

 

 redis > RPUSH list 1 2 3 4 5 6 7 8 9 10 (integer) 10 redis > LTRIM list 5 -1 “OK” redis > LRANGE list 0 -1 1) “6” 2) “7” 3) “8” 4) “9” 5) “10”

 

 

– TYPE

설명(TYPE) : 키에 저장된 값의 형태를 캐릭터 라인표현으로 돌려줍니다. 리턴되는 유형은 string, list, set, zset, hash 입니다.

시간복잡도 : O(1)

redis-cli > TYPE key

 

 redis > SET key1 “value” “OK” redis > LPUSH key2 “value” (integer) 1 redis > SADD key3 “value” (integer) 1 redis > TYPE key1 “string” redis > TYPE key2 “list” redis > TYPE key3 “set”

 

 

 

– RENAME, RENAMENX

설명(RENAME) : 키의 이름을 변경. 키 값이 있으면 덮어씀

설명(RENAMENX) : 키의 이름을 변경. 단 키 값이 이미 있으면 0을 반환

시간복잡도 : O(1)

redis-cli > RENAME key newkey

redis-cli > RENAMENX key newkey

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤