[Redis] 데이터 유형별 명령어
2020. 10. 6. 15:25ㆍDatabase/Redis
1. 데이터 유형
2. String 명령어
명령어 | 설명 |
APPEND [키] [값] | 키에 값을 추가해준다. |
SETRANGE [키] offset [값] | 키에 저장된 문자열의 offset 부분부터 값을 덮어 씌워버린다. |
GETRANGE [키] [시작] [끝] | 키에 저장된 문자열의 시작과 끝 범위의 부분 문자열을 구해준다. |
STRLEN [키] | 키에 저장된 문자열의 길이를 구해준다. |
DECR [키] | 키에 저장된 정수 값에서 정수 1을 빼준다. |
DECRBY [키] [감소값] | 키에 저장된 정수 값에서 감소값을 빼준다. |
INCR [키] | 키에 저장된 정수 값에 1을 더해준다. |
INCR [키] [증가값] | 키에 저장된 정수 값에 증가값을 더해준다. |
INCRBYFLOAT [키] [증가값] | 키에 저장된 실수 값에 증가값을 더해준다. (Redis 2.6.0부터 지원) |
SET [키] [값] | 키에 값을 저장한다. |
SETNX [키] [값] | 키에 값을 저장한다. 단 키에 이미 값이 저장되어 있을 경우 실패한다. |
PSETEX [키] [seconds] [값] | 키에 값을 저장하면서 만기시각을 설정한다. |
PSETEX [키] [milliseconds] [값] | |
MSET [키1] [값1] [키2] [값2] ... | 복수개의 키들에 각각의 값을 저장해준다. |
MSETNX [키1] [값1] [키2] [값2] ... | 복수개의 키들에 각각의 값을 저장해준다. 단 나열된 키에 이미 값이 저장되어 있을 경우 실패한다. |
GETSET [키] [값] | 키에 값을 저장하고 원래 있던 값을 구해준다. |
GET [키] | 키의 값을 구해준다. |
MGET [키1] [키2] ... | 복수개의 키 값들을 구해준다. |
SETBIT [키] offset [값] | 키의 offset번째 비트에 값(0 또는 1)을 설정해준다. |
GETBIT [키] offset | SETBIT 명령으로 값이 정해진 키의 offset 번째 bit 값을 구해준다. |
offset과 해당하는 bit의 값의 관계
offset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 ... |
bit (10) | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | 128 |
키 값 | \x80 | \x40 | \x20 | \x10 | \x08 | \x04 | \x02 | \x01 | \x00\x80 |
3. List 명령어
명령어 | 설명 |
LPUSH [키] [값] | 왼쪽에서 리스트의 오른쪽에 데이터를 저장한다. |
RPOP [키] | 리스트 오른쪽에서 데이터를 꺼내오고, 리스트에서는 삭제한다. |
LPOP [키] | 리스트 왼쪽에서 데이터를 꺼내오고, 리스트에서는 삭제한다. |
RPUSH [키] [값] | 오른쪽에서 리스트의 왼쪽에 데이터를 저장한다. |
LRANGE [키] [시작] [끝] | 인덱스로 범위를 지정해서 리스트를 조회한다. |
LLEN [키] | 리스트에서 데이터의 총 갯수를 조회한다. |
LINDEX [키] [인덱스] | 인덱스로 특정 위치의 데이터를 조회한다. |
LSET [키] [인덱스] [값] | 인덱스로 특정 위치의 값을 바꾼다. |
LREM [키] [카운트] [값] | 값을 지정해서 삭제한다. |
LTRIM [키] [시작] [끝] | 인덱스로 지정한 범위 밖의 값들을 삭제한다. |
RPOPLPUSH [키] [시작키] [목적지키] | RPOP과 LPUSH의 결합 명령어이다. |
BLPOP [키] ... [timeout] | 리스트에 값이 없을 경우, 지정한 시간만큼 기다려서 값이 들어오면 LPOP을 실행한다. |
BRPOP [키] ... [timeout] | 리스트에 값이 없을 경우, 지정한 시간만큼 기다려서 값이 들어오면 RPOP을 실행한다. |
BRPOPLPUSH [시작키] [목적지키] [timeout] | 리스트에 값이 없을 경우, 지정한 시간만큼 기다려서 값이 들어오면 RPOPLPUSH를 실행한다. |
LINSERT [키] [BEFORE/AFTER] [값] | 지정한 값 앞/뒤에 새 값을 저장한다. |
LPUSHX [키] [값] | 기존에 리스트가 있을 경우에만 LPUSH를 실행한다. |
RPUSHX [키] [값] | 기존에 리스트가 있을 경우에만 RPUSH를 실행한다. |
4. Set 명령어
명령어 | 설명 |
SADD [키] [멤버] ... | 집합에 멤버를 추가한다. |
SREM [키] [멤버] ... | 집합에 멤버를 삭제한다. |
SMEMBERS [키] | 집합의 모든 멤버를 조회한다. |
SCARD [키] | 집합에 속한 멤버의 갯수를 조회한다. |
SUNION [키] ... | 합집합을 구한다. |
SINTER [키] ... | 교집합을 구한다. |
SDIFF [키] ... | 차집합을 구한다. |
SUNIONSTORE [목적지키] [시작키] ... | 합집합을 구하고 새로운 집합에 저장한다. |
SINTERSTORE [목적지키] [시작키] ... | 교집합을 구하고 새로운 집합에 저장한다. |
SDIFFSTORE [목적지키] [시작키] ... | 차집합을 구하고 새로운 집합에 저장한다. |
SISMEMBER [키] [멤버] | 집합에 멤버가 존재하는지 확인한다. |
SMOVE [시작키] [목적지키] [멤버] | 소스 집합의 멤버를 목적 집합으로 이동한다. |
SPOP [키] [카운트] | 집합에서 무작위로 멤버를 가져온다. |
SRANDMEMBER [키] [카운트] | 집합에서 무작위로 멤버를 조회한다. |
SSCAN [키] [패턴] [카운트] | 멤버를 일정 단위 갯수 만큼씩 조회한다. |
5. Scored Set 명령어
명령어 | 설명 |
ZADD [키] [SCORE] [멤버] ... | 집합에 SCORE와 멤버를 추가한다. |
ZCARD [키] | 집합에 속한 멤버의 갯수를 조회한다. |
ZINCRBY [키] [증가값] [멤버] | 지정한 만큼 SCORE 증가, 감소한다. |
ZRANGE [키] [시작] [끝] | 인덱스로 범위를 지정해서 조회한다. |
ZRANGEBYSCORE [키] [최소] [최대] | SCORE로 범위를 지정해서 조회한다. |
ZREM [키] [멤버] ... | 집합에서 멤버를 삭제한다. |
ZREMRANGEBYSCORE [키] [최소] [최대] | SCORE 범위를 지정해서 멤버를 삭제한다. |
ZREVRANGE [시작] [끝] | 인덱스로 범위를 지정해서 큰 것부터 조회한다. |
ZSCORE [키] [멤버] | 멤버를 지정해서 SCORE를 조회한다. |
ZINCRBY [키] [증가값] [멤버] | 지정한 만큼 SCORE 증가, 감소한다. |
ZCOUNT [키] [최소] [최대] | SCORE로 범위를 지정해서 갯수를 조회한다. |
ZRANK [키] [멤버] | 멤버를 지정해서 RANK(인덱스)를 조회한다. |
ZREVRANK [키] [멤버] | 멤버를 지정해서 REVERSE RANK를 조회한다. |
ZREMRANGEBYRANK [키] [시작] [끝] | 인덱스로 범위를 지정해서 멤버를 삭제한다. |
ZSCAN [키] [패턴] [카운트] | SCORE, 멤버를 일정 단위 갯수 만큼씩 조회한다. |
ZRANGEBYLEX [키] [최소] [최대] | 멤버로 범위를 지정해서 조회한다. |
ZLEXCOUNT [키] [최소] [최대] | 멤버로 범위를 지정해서 갯수를 조회한다. |
ZREMRANGEBYLEX [키] [최소] [최대] | 멤버로 범위를 지정해서 멤버를 삭제한다. |
ZREVRANGEBYLEX [키] [최대] [최소] | 멤버로 범위를 지정해서 큰 것부터 조회한다. |
6. Hash 명령어
명령어 | 설명 |
HSET [키] [필드] [값] | 필드와 값을 저장한다. |
HDEL [키] [필드] ... | 필드로 값을 삭제한다. |
HGET [키] [필드] | 필드로 값을 조회한다. |
HLEN [키] | 필드 갯수를 조회한다. |
HMSET [키] [필드] [값] ... | 여러개의 필드와 값을 저장한다. |
HMGET [키] [필드] ... | 여러개의 값을 조회한다. |
HKEYS [키] | 키에 속한 모든 필드명을 조회한다. |
HVALS [키] | 키에 속한 모든 값을 조회한다. |
HGETALL [키] | 키에 속한 모든 필드와 값을 조회한다. |
HINCRBY [키] [필드] [증가값] | 값을 증가시키거나 감소시킨다. |
HEXISTS [키] [필드] [값] | 필드가 존재하는지 확인한다. |
HSETNX [키] [필드] [값] | 필드가 기존에 없으면 저장한다. |
HINCRBYFLOAT [키] [필드] [증가값] | 값을 증가시키거나 감소시킨다. |
HSCAN [키] [패턴] [카운트] | 필드, 멤버를 일정 단위 갯수 만큼씩 조회한다. |
HSTRLEN [키] [필드] | 값의 길이를 조회한다. |
7. 트랜잭션 명령어
Redis에서 제공하는 트랜잭션은 롤백이 되지 않는다. 트랜잭션 실행 중에 어떤 명령이 실패해도 뒤에 명령들은 그대로 실행이 되어 버린다.
명령어 | 설명 |
MULTI | 트랜잭션의 준비를 알리는 명령이다. MULTI 명령 후에 입력한 명령들은 EXEC 명령이 실행되기 전까지 실행되지 않고 QUEUE에 쌓인다. |
EXEC | 트랜잭션을 실행시키는 명령이다. MULTI 명령 후에 입력한 명령들은 EXEC 명령이 실행되면 차례대로 실행된다. |
DISCARD | MULTI 명령 후 EXEC 실행전에 이 명령을 실행하면 QUEUE에 쌓인 명령들을 지워버린다. MULTI 역시 실행 안된 상태가 된다. |
8. Pub/Sub 명령어
명령어 | 설명 |
SUBSCRIBE [채널] | 나열한 채널들에 해당하는 채널들로 들어오는 메시지를 대기하는 명령어이다. |
PSUBSCRIBE [채널] | 나열한 패턴들에 일치하는 채널들로 들어오는 메시지를 대기하는 명령어이다. |
PUBLISH [채널] [메시지] | 채널에 메시지를 보내며, 해당하는 채널의 대기중인 클라이언트 모두에게 메시지가 전달된다. |
UNSUBSCRIBE [채널] | 채널의 대기를 취소한다. |
PUNSUBSCRIBE [패턴] | 패턴에 매칭되는 채널들에서의 대기를 취소한다. |
예를 들어, 동일한 Redis 서버에 3개의 클라이언트를 접속시키고 클라이언트1과 2에 Subscribe 설정을 했을 때, 클라이언트3에서 보내는 메시지의 채널에 따라 다르게 동작하는 것을 확인할 수 있다.
- 클라이언트1 : SUBSCRIBE ch1 ch2 ch3
- 클라이언트2 : SUBSCRIBE ch1 ch4
- 클라이언트3 : PUBLISH ch1 "hi"
- 클라이언트3 : PUBLISH ch2 "hello"
- 클라이언트3 : PUBLISH ch3 "world"
- 클라이언트3 : PUBLISH ch4 "welcome"
[참고] redis.io/commands#
728x90
'Database > Redis' 카테고리의 다른 글
[Redis] Redis 요약 및 정리 (0) | 2020.10.08 |
---|---|
[Redis] 요구 사항 파악, Redis 구조, 실제 활용 사례 (0) | 2020.10.07 |
[Redis] 서버, 연결 명령어 (0) | 2020.10.06 |
[Redis] 키 명령어 (0) | 2020.10.06 |