2020. 10. 6. 14:22ㆍDatabase/Redis
1. 키 명령어
명령어 | 설명 |
DEL [키...] | 키들을 삭제해준다. 삭제할 키들을 공백으로 구분해서 작성해주면 되며, 실제로 삭제한 키들의 개수를 반환해준다. |
DUMP [키] | Redis 2.6.0 이상부터 지원되는 명령어로 키에 저장된 값을 Redis에서 사용하는 포맷으로 직렬화하여 출력해준다. 직렬화된값은 RESTORE 명령으로 다시 원래 값으로 되돌릴 수 있다. |
EXISTS [키] | 메모리에 키가 존재하는지 확인하는 명령어이다. 존재할 경우 1, 존재하지 않을 경우 0을 반환한다. |
EXPIRE [키] [seconds] | 키에 만기시각을 설정해준다. 만기시각 설정에 성공할 경우 1, 실패할 경우 0을 반환한다. |
KEYS [패턴] | 패턴에 맞는 키를 찾아서 출력해준다. 아주 큰 DB에서 패턴에 맞는 키들을 찾아내면 성능에 영향을 줄 수 있기 때문에 주의해야한다. (패턴은 ?, *, [...] 기호가 들어가는 형태) |
MIGRATE [호스트] [포트] [목적지DB인덱스] [timeout] | Redis 2.6.0부터 지원하며 Redis 서버에서 다른 Redis 서버로 키를 옮기는 명령어이다. 내부적으로는 출발지 Redis 서버에서 DUMP+DEL, 목적지 Redis 서버에서는 RESTORE 행위가 일어난다. |
MOVE [키] [목적지DB인덱스] | 키를 다른 인덱스의 DB로 옮긴다. 성공 시 1, 실패 시 0을 반환한다. |
OBJECT [서브명령어] [파라미터] | 키와 관련된 Redis 객체의 내부를 검사해주는 명령어이다. 서브명령어의 용도에 따라 파라미터가 달라진다. OBJECT REFCOUNT [키]는 키의 값을 참조하는 수를 구해주며, OBJECT ENCODING [키]는 키값의 인코딩 방식을 보여준다. OBJECT IDLETIME [키]는 키가 유효 상태였던 시간을 보여준다. |
PERSIST [키] | 만기시각을 없애는 명령어이다. 성공 시 1, 실패 시 0을 반환한다. |
PEXPIRE [키] [milliseconds] | Redis 2.6.0부터 지원하며 키에 만기시각을 밀리초 단위로 설정해준다. 성공 시 1, 실패 시 0을 반환한다. |
PEXPIREAT [키] [milliseconds-timestamp] | |
PTTL [키] | Redis 2.6.0부터 지원하며 해당 키가 만기되지까지 남은 밀리초 값을 반환한다. 실패할 경우 -1을 반환한다. |
RANDOMKEY | 현재 DB에서 랜덤한 키를 반환해준다. 빈 DB의 경우 NULL을 반환한다. |
RENAME [키] [새키] | 키 이름을 변경해준다. 이미 존재하는 새 키가 있다면 덮어씌운다. 성공 시 OK, 실패 시 에러메시지를 반환한다. |
RENAMENX [키] [새키] | 키 이름을 변경해준다. 이미 존재하는 새 키라면 실패한다. 성공 시 1, 실패 시 0을 반환한다. |
RESTORE [키] [TTL] [Serialized-value] | DUMP 명령으로 구한 직렬화된 값을 다시 메모리 상에 올린다. TTL은 만기시각 초단위 값으로 0일시 만기시작 설정을 안하게 된다. Serailized-value는 DUMP 명령으로 구한 직렬화된 값이다. 성공 시 OK, 실패 시 에러메시지를 반환한다. |
TTL [키] | 해당 키가 만기되기까지 남은 초 값이다. 만기값을 구하지 못할 경우 -1을 반환한다. |
TYPE [키] | 해당 키의 데이터형을 구해준다. 못 구한 경우 None을 반환한다. |
2. 정렬
List, Set, Sorted Set형의 키에 포함된 요소들을 파라미터들로 정해준 조건대로 정렬해서 보여준다.
SORT [키] [BY 패턴] [LIMIT offset count] [GET 패턴 ...] [ASC/DESC] [ALPHA] [STORE 목적지]
1) [BY 패턴]
이 키 외의 다른 키값들을 이용하여 이 키의 요소들을 정렬하고 싶을 때 사용한다.
예를 들어 mylist라는 List형의 키에 "kweok", "kim", "park", "jung", "lee" 라는 요소들이 있고, count_kim이라는 String형의 키에는 100, count_lee이라는 String형의 키에는 82, count_park이라는 String형의 키에는 55, count_jung이라는 String형의 키에 47 이라는 값이 있을 때, mylist 요소들을 count_*에 해당하는 키들의 값에 의해 정렬하고 싶다면 'sort mylist by count_*' 명령어로 실행해주면된다. 정렬을 하지 않을 경우 BY nosort로 설정해주면 된다.
2) [LIMIT offset count]
정렬 결과에서 일부만 보고 싶을 때 offset count 값을 설정해준다.
3) [GET 패턴 ...]
해당 요소를 키 이름에 포함하고 있는 키의 값을 출력하고 싶을 때 사용한다. GET은 여러 필드를 표현하기 위해 여러번 사용이 가능하다. GET #을 이용하면 원래 요소의 값이 보여진다.
4) [ASC/DESC]
정렬 결과를 오름차순으로 할지 내림차순으로 할지 결정한다.
5) [ALPHA]
정렬은 기본적으로 정수와 실수 기준으로 하게 되며 수가 아닌 경우 0으로 처리된다. 이때 문자열 기준으로 정렬하고 싶을 경우 ALPHA를 포함시키면 된다.
6) [STORE 목적지]
정렬 결과를 출력하지 않고 목적지로 정해준 키에 넣어준다.
3. 주의할 명령어
Redis는 Single Thread로 동작한다. (정확하게는 명령어를 처리하는 쓰레드가 한 개) 따라서 만약 실행이 오래 걸리는 명령어 한 개가 쓰레드를 잡아먹는다면, 나머지 명령어는 밀리게 된다. 이 경우도 장애 상황으로 이어질 수 있다.
명령어 | 설명 |
KEYS * | Redis의 모든 키를 출력하는 명령어이기에, 메모리에 저장된 값이 많을 때 이 명령어를 사용하게 된다면 문제가 생길 수 있다. |
'Database > Redis' 카테고리의 다른 글
[Redis] 데이터 유형별 명령어 (0) | 2020.10.06 |
---|---|
[Redis] 서버, 연결 명령어 (0) | 2020.10.06 |
[Redis] redis.conf 설정 파일 (0) | 2020.10.06 |
[Redis] 실습용 Redis 서버 설치 (0) | 2020.10.06 |