[DB] RDB와 In-memory의 차이

ShinJuYong·2022년 7월 18일
0

기술면접

목록 보기
1/4

RDBMS

  • 보조기억 장치에 저장한다.
  • row와 column이 존재한다
  • 데이터를 저장하는 공간이 지정 된다.
  • 관계 (1:n, n:1, n:m) 등 데이터를 연결해 관리한다.
  • SQL을 통해 접근한다
  • 관계를 통해 성능을 향상시키지만 하드웨어의 스펙이 상승돼야한다.

NoSQL

  • 보조기억 장치에 저장한다.
  • Key-Value형태의 해쉬테이블느낌으로 저장된다.
  • 형식이 없어 구조 변경이나 데이터의 형식이 변경이 잦다

In-Memory

  • RAM과같은 주 기억 장치에 저장함
  • key-value형태로 저장한다.
  • rdbms,nosql에 비해서 용량의 크기가 제한적이다
  • 주기억장치의 한계로 용량의 크기가 제한적이지만, In-Out이 매우 빠르다

주로 두개가 사용된다

Memcached

  • 데이터 타입을 string으로만 저장한다
  • 오직 메모리에만 저장한다
  • 메모리가 부족한경우 일부 데이터를 삭제하여 메모리를 활용한다
  • 복제가 불가능하여 캐시로만 사용이 된다
  • 멀티쓰레드를 지원한다

Redis

  • 여러 데이터 타입을 지원한다
  • 메모리를 포함하여 디스크에도 저장한다
  • 비휘발성의 특징을 가지고있는데 스냅샷을 통해서 디스크에 담든다
    • 메모리의 여유 공간을 만든다
  • 싱글 쓰레드를 사용한다
  • 데이터를 복제하고 들어온 데이터를 업데이트가 가능하여 서버를 복제한다
    • 스토리지의 역할도 포함함
  • 트랜잭션을 유사하게 지원하여 사용을 할 수 있따.

왜 In-memory에서 Redis가 앞서는가

  • 맴케시드는 멀티쓰레드를 사용하여 다중처리가 빠르며 작은 데이터를 임시저장하는데 강점을 가지고 있다.

  • Redis는 속도면에서 맴케시드보단 다중처리가 느리지만 비휘발성, 여러 데이터타입, 유사한 트랜잭션 사용이 가능한점이 좋아 redis를 사용한다.

0개의 댓글