본문 바로가기
SQL

[SQL] Redis

by busybee-busylife 2025. 3. 11.
728x90

Redis

- 오픈 소스 인메모리(in-memory) 데이터 저장소: 메모리에 저장&값을 읽기 때문에 디스크에서 읽는 것보다 훨씬 빠르다

  (trade-off: 디스크에 저장하면 큰 용량 저장 가능 / 메모리는 용량 적으나 속도 빠름)  

- Key-Value 데이터베이스 방식으로 동작하는 NoSQL 데이터베이스

- 빠른 속도와 유연성을 제공하여 대부분 SQL 데이터베이스와 함께 사용 

- 캐싱(Cache), 세션 저장(Session Store), 메시지 브로커(Message Broker) 등의 용도로 많이 사용

 

 

Cashing(캐싱) 

자주 사용되는 데이터를 더 빠른 저장소에 임시 저장 -> 성능 향상 

ex) 온라인몰에서 상품 목록 페이지: 사용자가 방문할 때 마다 PostgreSQL과 같은 DB에서 데이터를 가져오면 시간 오래걸림! 

      첫번째 요청에서는 DB에서 데이터를 가져옴 

      이후 Redis에 저장한 후, 동일 요청에 대해서는 DB가 아닌 Redis에서 데이터를 가져옴(빠르다!) 

Redis는 메모리(RAM)에 데이터를 저장하는 초고속 데이터베이스: 캐싱 용도로 많이 사용 

 

 

메모리는 휘발되는데? 

Redis가 데이터를 저장하는 방법

 - RDB(Redis Database): 특정시점에 스냅샷을 찍어 데이터를 저장 

 - AOF(Append Only File): 모든 쓰기 연산(생성, 수정, 삭제)에 대해 로그파일에 기록 -> 서버 다시 시작되면 데이터 재구성 

 

 

Redis 설치 

Ubuntu 터미널에서 아래 명령어 실행

sudo apt update
sudo apt install redis
sudo service redis-server start


String 타입

-  하나의 키(Key)에 문자열(Value)를 저장

SET name "Dodo"  # "name" 키에 "Dodo" 저장
GET name          # "Dodo" 반환

SET count 10      # "count" 키에 10 저장
INCR count        # count 값 11로 증가
DECR count        # count 값 10으로 감소

APPEND name " Lee"  # "name" 키에 " Lee" 추가
GET name            # "Dodo Lee" 반환


List 타입

- 순서가 있는 리스트(Queue, Stack)
- 데이터를 앞(LPUSH) 또는 뒤(RPUSH)에 추가 가능
- 최대 40억 개의 요소 저장 가능
- LPOP/RPOP을 사용해 Queue 또는 Stack처럼 사용 가능

LPUSH fruits "Apple"  # 리스트 왼쪽에 "Apple" 추가
RPUSH fruits "Banana" # 리스트 오른쪽에 "Banana" 추가
RPUSH fruits "Cherry" # 리스트 오른쪽에 "Cherry" 추가

LRANGE fruits 0 -1    # ["Apple", "Banana", "Cherry"]

LPOP fruits           # "Apple" 제거
RPOP fruits           # "Cherry" 제거

LRANGE fruits 0 -1    # ["Banana"]

728x90

'SQL' 카테고리의 다른 글

[SQL] MongoDB  (0) 2025.03.11
[SQL] PostgreSQL Extensions  (1) 2025.03.11
[SQL] PostgreSQL JSON columns  (0) 2025.03.10
[SQL] Data Control Language  (0) 2025.03.10
[SQL] Transaction  (0) 2025.03.10