NOSQL & REDIS

yshjft·2022년 9월 6일
0

데이터베이스 

목록 보기
4/10

RDBMS VS NOSQL

둘은 대체될 수 있는 것이 아니고 상황에 따라 적절히 선택해서 사용해야 한다.

RDBMS

  • 테이블들의 관계를 통해서 데이터를 저장하는 데이터베이스로 SQL롤 데이터를 CRUD
  • 구조화가 굉장히 중요
  • 명확한 데이터 구조 보장, 중복을 피할 수 있다

NOSQL

  • 자유로운 형태로 데이터 저장
    • Key-value store
    • document db
  • 수평확장 가능, 분산처리 지원

Redis

  • Key-value 저장소로서 String, list, hash, set, sorted set 등의 자료 구조를 지원하는 NOSQL 데이터베이스이다.
  • In-memory로 저장(메모리에 저장)
    • 빠르게 데이터를 가지고 올 수 있다
    • 세션 관리, jwt 관리, 캐싱

Redis 백업 방식

redis는 메모리에 데이터를 저장하는 방식으로 디바이스를 껏다 키는 순간 데이터가 다 삭제되므로 백업이 필요하다.(영속성 보장)

RDB

  • 순간적으로 메모리에 있는 내용 전체를 디스크에 옮겨 담는 방식
    • 일정 기간내에 변경이 발생한다면 메모리에 존재하는 데이터를 가져와 파일로 저장
    • 이러한점 덕분에 버전 관리가 가능하다.
    • 하지만 Redis에서 백업 기간 외에 장애가 발생하게 되면 그 기간동안의 데이터는 복구가 되지 안는다는 문제점이 있다.

AOF

  • Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태
  • Redis에 쓰기 요청이 들어올 때마다 백업을 하는 방식이다.
  • 데이터 유실의 문제는 없다.
  • 다만 불필요한 작업 발생, 서버 자원을 많이 소모한다는 문제점이 있다.
    • 예를 들어 100번의 Increment 작업을 통해 0의 데이터를 100으로 만들었다고 생각해보자. 그렇다면 최종적으로 저장되어 있는 데이터는 100이지만, AOF 방식에서 기록된 파일을 읽어와 복구하려면 불필요하게 100번의 Increment 쓰기 작업을 실행해야만 한다.

참고

173. [Cloud] Redis 설치, 사용 방법, 데이터 백업을 위한 RDB & AOF 개념 및 간단한 Redis 사용 사례 연구

Redis는 언제 사용하는가?

DB, Cache 용도로 사용될 수 있다. 주로 Cache 서버를 구현할 때 많이 쓴다.

Redis 특징은?

  • 영속성을 지원하는 인 메모리 데이터 저장소
  • 다양한 자료 구조를 지원
  • 싱글 스레드 방식으로 인해 연산을 원자적으로 수행이 가능

Redis 속도 빠른 이유는?

Key-value 방식으로 데이터를 저장하기 때문

Redis VS MemCached

[데이터베이스] Redis란?

profile
꾸준히 나아가자 🐢

0개의 댓글