[Redis] 데이터 유형별 명령어

2020. 10. 6. 15:25Database/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"


[참고] kerocat.tistory.com/1

[참고] redis.io/commands#

[참고] redisgate.kr/redis/command/commands.php

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