Redis
- Redis(Remote Dictionary Server)는 kvp 구조의 비관계형 데이터를 관리하기 위한 인메모리 NoSQL 저장소다.
- 데이터베이스나 캐시, 메시지 브로커로 사용할 수 있으며, 각종 데이터 타입을 지원한다.
Data Types
Strings
- 문자열은 레디스 값의 가장 기본적인 타입이다.
- INCR, APPEND 등 각종 동작이 가능하다.
Lists
- 리스트는 문자열의 리스트다.
- LPUSH, RPUSH 등의 동작이 가능하다.
Sets
- 집합은 문자열의 순서없는 컬렉션이다.
- SADD, SPOP, SMEMBERS 등의 동작이 가능하다.
Hashes
- 해시는 문자열 필드와 문자열 값으로 이뤄진 맵이다.
- 따라서 오브젝트를 표현하기에 가작 적합한 타입이다.
- HSET, HMSET, HGETALL 등의 동작이 가능하다.
Sorted sets
- 집합과 비슷하지만 점수로 정렬되는 순서있는 컬렉션이다.
- ZADD, ZRANK 등의 동작이 가능하다.
Commands
SET
- 키와 값을 인자로 받아 kvp 데이터를 저장한다.
redis> SET key ”value”
“OK”
GET
redis> SET key “value”
“OK”
redis> GET key
“value”
DEL
- 키를 인자로 받아 해당 키와 값을 삭제한다. 삭제한 키의 개수를 반환하며, 키가 없으면 무시한다.
redis> SET key1 “value”
“OK”
redis> SET key2 “value”
“OK”
redis> DEL key1 key2 key3
(integer) 2
INCR
- 키를 인자로 받아 해당 키의 값을 1 증가시키고 반환한다.
redis> SET key “10”
“OK”
redis> INCR key
(integer) 11
redis> GET key
“11”
KEYS
- 패턴을 인자로 받아 해당 패턴에 맞는 모든 키를 반환한다.
h?llo matches hello, hallo and hxllo
h*llo matches hllo and heeeello
h[ae]llo matches hello and hallo, but not hillo
h[^e]llo matches hallo, hbllo, … but not hello
h[a-b]llo matches hallo and hbllo
- 오버헤드가 크기 때문에 프로덕션 환경에서 사용하면 안된다.
redis> SET key1 "value1" key2 "value2"
"OK"
redis> KEYS key1
1) "key1"
redis> KKEYS *
1) "key1"
2) "key2"
SCAN
- 커서 기반 키 이터레이터.
- KEYS와 비슷하지만 제한된 버킷을 순회하기 때문에 프로덕션에 사용할 수 있을 정도로 오버헤드가 작다.
redis> scan 0
1) "17"
2) 1) "key:12"
2) "key:8"
3) "key:4"
4) "key:14"
5) "key:16"
6) "key:17"
7) "key:15"
8) "key:10"
9) "key:3"
10) "key:7"
11) "key:1"
redis> scan 17
1) "0"
2) 1) "key:5"
2) "key:18"
3) "key:0"
4) "key:2"
5) "key:19"
6) "key:13"
7) "key:6"
8) "key:9"
9) "key:11"
하위문서
참고자료
이 문서를 인용한 문서