...
Redis Common Keys
Common에 있은 명령어들은 5가지 Data type(자료구조)에 관계없이 모든 Key 적용되는 명령을 뜻한다.
Common Keys 명령어 리스트
- Key 확인, 조회: EXISTS, KEYS, SCAN, SORT
- Key 이름 변경: RENAME, RENAMENX
- Key 삭제: UNLINK, RM
- Key 자동 소멸 관련: EXPIRE, EXPIREAT, TTL, PEXPIRE, EXPIREAT, PTTL, PERSIST
- 정보 확인: TYPE, OBJECT
- 샘플링: RANDOMKEY
- Data 이동: MOVE, DUMP, RESTORE, MIGRATE
Commands | Syntax | Description |
EXISTS | key | Key가 존재하는지 확인 |
UNLINK | key | Key를 삭제 |
RM | key (subquery) | Key를 삭제 (Enterprise server) |
KEYS | key pattern | Key들을 pattern으로 조회 |
RENAME | key new_key | Key 이름을 변경 |
RENAMENX | key new_key | new_key가 존재하지 않을 경우에만 key 이름을 변경 |
EXPIRE | key seconds | 지정된 시간(초) 후 key 자동 삭제 |
RANDOMKEY | random으로 key를 조회 | |
SORT | key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] |
다른 key와 join하여 data를 sort하여 조회 |
TTL | key | 남은 expire time(seconds)을 조회 |
TYPE | key | key의 data type을 조회 |
EXPIREAT | key timestamp | 지정된 시간(Unix timestamp) 후 key 자동 삭제 |
PERSIST | key | Expire time을 삭제 |
OBJECT | subcommand key | key에 대한 정보 조회 |
PEXPIRE | key milliseconds | 지정된 시간(milliseconds) 후 key 자동 삭제 |
PEXPIREAT | key milliseconds-timestamp | 지정된 시간(Unix milliseconds-timestamp) 후 key 자동 삭제 |
PTTL | key | 남은 expire time을 milliseconds로 조회 |
MOVE | key db | Key를 다른 DB로 옮긴다 |
DUMP | key | Data를 dump |
RESTORE | key ttl serialized-value [REPLACE] | Data를 restore |
MIGRATE | host port key destination-db timeout [COPY] [REPLACE] |
Data를 다른 Redis Server로 이동/복사 |
SCAN | cursor [MATCH pattern] [COUNT count] |
Key들을 일정 단위 갯수 만큼씩 조회 |
모든 키 가져오기 (keys)
> keys * # 모든 키 검색
> keys o* # o로 시작하는 키 검색 [패턴]
레디스 자체 성능 떄문에 keys * 같은 명령어 대신 scan 0으로 대체 하는 것이 좋다.
"재귀적"으로 key를 순차 호출 가능하다.
키가 존재하는지 (exists)
> exists <key>
키 이름 변경 (rename)
> rename <key>
키 삭제 (unlink)
> SET key1 "Hello"
"OK"
> SET key2 "World"
"OK"
> UNLINK key1 key2
(integer) 2
레디스 db에 키 데이터가 많을때 del 커멘트 치면 수행 오래걸린다. (키 지우는 동안 아무것도 못함)
따라서 unlink의 경우에는 back ground 작업으로 키를 없애주기 때문에 이 명령어로 대체 하길 추천된다.
모든 키 삭제 (flushall)
> flushall
키 자동 삭제 (expire / ttl)
설정한 시간내로 key를 자동 삭제하는 명령어 이다.
다만, 기간 삭제를 등록하고 바로 set, getset의 명령어를 expire 명령어 이후에 key에 다시 적용하면expire 명령은 무효처리가 된다.
그러나 incr, lpush, sadd, zadd, hset과 같은 명령어는 유지된다.
# expire <key> <member> <second> : key에 ttl 설정 (ttl : Time To Live)
# ttl <key> : 남은 ttl을 초단위로 확인
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> expire a 20 # key a를 20초 후에 삭제
(integer) 1
127.0.0.1:6379> ttl a # key 삭제 남은 시간이 얼마 남았는지
(integer) 16
127.0.0.1:6379> ttl a
(integer) -2
127.0.0.1:6379> get a
(nil)
화면 클리어 (clear)
> clear
데이터 영구저장 (save / bgsave)
- 현재 입력한 key/value 값을 파일로 저장 가능
- config에서 설정하여 자동 저장도 가능
- exit 후 redis-server의 working directory 안에 rdb파일이 생성됨
> save # 포그라운드로 rdb 파일로 저장
> bgsave # 백그라운드로 저장
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.