- Redis Data Type 12023년 06월 02일
- starryeye
- 작성자
- 2023.06.02.:07
Redis 는 Key-Value store 이다.
이때, Value 에 해당하는 부분에서 다양한 데이터 구조를 지원한다.
하나씩 살펴보자..
1. Strings
Key 하나에 Value 는 문자열에 해당된다.
특징
1. 문자열을 저장할 때, Byte 배열로 저장된다.
-> 따라서, 바이너리로 표현가능한 모든 데이터를 저장할 수 있다. (Binary-Safe)
-> 주로 캐시에서 이용되며, 이를 이용해서 정적 웹 컨텐츠(HTML, JPG, JSON 등)들을 저장
2. 문자열에 저장할 수 있는 최대 크기는 512MB 이다.
3. 대표 명령어
명령어 기능 SET [Key] [Value]
GET [Key]해당 키에 문자열 값을 저장하고 반환 받는다.
덮어쓰기 가능SET [Key] [Value] EX [Seconds] 해당 키에 문자열 값을 저장하면서, 만료시간을 지정해준다. INCR [Key]
DECR [Key]해당 키의 값을 1 증가 시키거나 감소시킨다.
값을 Integer 로 취급한다.
Atomic 보장한다.
-> 응용하면 Counter 가 된다.INCRBY [Key] [Increment]
DECRBY [Key] [Decrement]해당 키의 값을 해당 값만큼 증가 시키거나 감소시킨다. MSET [Key1] [Value1] [Key2] [Value2]
MGET [Key1] [Key2]여러 키의 문자열 값을 저장하고 반환 받는다.
SET/GET 을 한번에 보내서, 네트워크 부하를 줄일 수 있다.http://redisgate.kr/redis/command/strings.php
4. 예시
> user:1 이라는 Key 에 salvatore 라는 Value 로 저장
> user:1 이라는 Key 의 값을 반환
> ticket:27 이라는 Key 에 "\"{'username': 'priya', 'ticket_id': 321}\"" 이라는 Value(JSON) 로 저장
만료는 100초로 지정하였다.
> views:page:2 라는 Key 의 Value 를 1(Integer) 증가 시켰다. 여기선, 최초 저장이라 1로 저장
> views:page:2 라는 Key 의 Value 를 10(Integer) 증가 시켰다.
https://redis.io/docs/data-types/strings/
2. Lists
Key 하나에 Value 는 여러 값의 집합인 형태이다.
특징
1. Value 의 자료구조는 Linked-List 이다.
따라서, 인덱스 접근은 순차 접근이라 느리지만 데이터 추가/삭제는 빠르다.
2. Queue, Stack 등의 자료구조로 이용될 수 있다.
3. value 가 하나도 없으면 해당 key는 삭제되며, value가 최초 저장되면서 key 는 생성된다.
4. 대표 명령어
명령어 기능 LPUSH [Key] [Value] 리스트의 가장 왼쪽에 새로운 값을 추가 RPUSH [Key] [Value] 리스트의 가장 오른쪽에 새로운 값을 추가 LPOP [Key] 리스트의 가장 왼쪽에서 값을 삭제하고 반환 RPOP [Key] 리스트의 가장 오른쪽에서 값을 삭제하고 반환 LLEN [Key] 리스트의 값의 총 갯수 반환 LRANGE [Key] [Start Indx] [End Indx] 리스트의 인덱스 범위로 값을 조회
인덱스 값 0 은 가장 왼쪽을 뜻한다.
인덱스 값 -1 은 가장 오른쪽을 뜻한다.http://redisgate.kr/redis/command/lists.php
알아두면 좋은 팁>
동일한 방향에서 Push/Pop 을 하면 Stack
서로 다른 방향에서 Push/Pop 을 하면 Queue
5. 예제
work:queue:ids 라는 Key 에
서로 다른 방향의 Push/Pop 을 이용하여 Value(Lists 자료구조)를 Queue 로 이용하고 있다.
work:queue:ids 라는 Key 에
같은 방향의 Push/Pop 을 이용하여 Value(Lists 자료구조)를 Stack 으로 이용하고 있다.
'DataBase > NoSQL' 카테고리의 다른 글
Redis Data Type 3 (0) 2023.06.02 Redis Data Type 2 (1) 2023.06.02 Redis 시작해보기 (0) 2023.06.01 MongoDB Sharded Cluster (0) 2023.06.01 MongoDB Replica Set (0) 2023.05.20 다음글이전글이전 글이 없습니다.댓글