쏭의 개발 블로그

[DB] Redis 본문

DB

[DB] Redis

songu1 2023. 2. 11. 14:44

1. Redis란?

Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)

  • in-memory로 cache 방식으로 빠르게 원하는 데이터를 가져올 수 있는 방식의 DB
  • in-memory 방식
    • 데이터를 디스크에 저장하는 것이 아닌 RAM에 저장하는 방식
    • (장점) 디스크 스캐닝이 필요없어 매우 빠름
    • (단점) RAM : 휘발성 → 백업 과정이 존재
  • 캐싱이 가능
  • → 실시간 채팅에 적합하며 세션공유를 위해 세션 클러스터링에도 활용됨

데이터 타입

  • 문자열 (text, binary data)
    • 가장 일반적인 key-value 구조의 형태
  • 집합 (String 집합)
    • 여러개의 값을 하나의 value에 넣을 수 있음
  • 정렬된 집합(sorted set)
    • 빠르게 데이터를 가져올 수 있어 많은 요청에 대한 빠른 응답 처리에 용이
  • 해시
  • 리스트 (양방향 연결리스트도 가능)
    • array 형식의 데이터 구조
    • 처음과 끝에 데이터를 넣고 빼는것은 빠르지만 중간에 데이터를 삽입하는 것은 어려움

 

2. Redis 백업

(1) snopshot(RDB)

특정 지점을 설정하고 디스크에 백업

  • 메모리에 존재하는 모든 데이터를 파일로 가져와 한꺼번에 쓰는 방식
  • (장점) 특정 시점으로 데이터를 복구하는 것이 가능
  • (단점) Redis에 장애가 발생했을 때 백업 시점을 제외한 중간 시점에서 발생한 데이터는 유실될 수 있음

(2) AOF(Append Only File)

명령(쿼리)들을 저장해두고 서버가 셧다운되면 재실행해서 다시 만들어 놓는 것

  • 기간을 정해두는 것이 아닌 write 요청이 생기는 순간 바로 백업이 되어지는 방식
  • Redis 서버에 장애가 생겼을 때 로그 파일에 기록된 쓰기 작업을 그대로 따라해 이전 상태로 복구
  • RDB 방식에 비해 백업데이터가 크고 서버 자원을 많이 잡아먹는다.

⇒ snopshot 방식과 AOF 방식을 적절히 혼재해서 사용할 것을 권장

 

 

 


 

https://gyoogle.dev/blog/computer-science/data-base/Redis.html

https://wildeveloperetrain.tistory.com/21

https://blog.naver.com/PostView.naver?blogId=alice_k106&logNo=221553725569&parentCategoryNo=&categoryNo=24&viewDate=&isShowPopularPosts=false&from=postView 

 

 

 

'DB' 카테고리의 다른 글

[DB] 저장 프로시저  (0) 2023.02.11
[DB] SQL injection  (0) 2023.02.11
[DB] Transaction Isolation Level 트랜잭션 고립수준  (1) 2023.02.01
[DB] 트랜잭션(Transaction)  (0) 2023.01.31
[SQL] 데이터베이스 - TCL  (0) 2023.01.31