본문 바로가기
TIL

[TIL] Redis에 대하여

by 쾌횽 2024. 4. 12.
반응형

🧐 메모리란 무엇일까?

메모리는 컴퓨터 하드웨어 구성요소 3가지 중 하나로 저장을 담당하고 있는 부품이다.

컴퓨터 하드웨어 구성 요소 3가지

  • 연산을 담당하는 CPU
  • 기억을 담당라는 주 기억장치 RAM, 보조 기억장치 HDD SSD
  • 입출력을 담당하는 키보드, 모니터, 프린터 등

컴퓨터가 데이터를 저장할 때 사용하는 것이 바로 RAM이고 어떤 위치에서던 똑같은 속도로 접근하여 읽고 쓸 수 있다는 의미를 가진다.

간단한 컴퓨터의 작동 원리

  1. 입력을 받으면 RAM에 저장된다.
  2. RAM에 적힌 값과 존재하는 명령을 해석해서 CPU가 연산을 한다.
  3. 결과를 RAM에 보내주면 그것을 출력한다.

메모리(램)의 특징은?

메모리의 특징은 전원이 꺼질 경우 데이터가 날라가는 휘발성이라는 것이다 또한 데이터를 통신하기 위해서는 물리적 거리가 중요한데, 램은 CPU와 물리적으로 가까워서 데이터를 처리하는 것이 매우 빠르다.

 

반대로 보조기억장치라 부르는 HDD(하드디스크)와 SSD의 경우에는 전원이 꺼져도 데이터가 날라가지 않는 비휘발성의 속성을 가지고 있고 CPU와의 거리가 상당히 멀기 때문에 데이터를 처리하는 속도가 느리다.

🧐 캐시(Cache)란? 

캐시(Cache)란 데이터를 미리 복사해놓는 임시 저장소기도 하며 빠른 장치와 느린 장체에서 속도 차이로 인한 병복 현상을 줄이기 위한 메모리이다.

실제로 RAM과 CPU는 연산속도의 편차가 심하여 캐시 메모리를 중간에 두는 것으로 속도 차이를 해결하고있다.

비슷한 논리로 CPU와 HDD&SSD속도 차이가 매우 심하여 RAM을 캐시메모리라고도 부른다.

임시로 저장한다는 특징을 통하여 한번 계산되었던 것을 다시 요청할 경우 빠르게 가져올 수 있다.

🧐 In-Memory DB가 탄생한 이유

 

사물 인터넷(loT)의 출현과 클라우드 기반 솔루션이 성장하면서 실시간으로 데이터를 처리해야 할 필요성이 셩겼고, 메모리의 가격이 상대적으로 저렴해지면서 데이터를 저장하는데 사용했다.

 

결국 은 기존 DB로는 급격하게 늘어난 데이터를 감당할 수 없었고, 여러가지 중요한 시스템에 실시간에 가까운 데이터 처리가 필요해서 발전했다.

 

대표적인 In-Memory DB, Memcached와 Redis의 특징을 알아보자

 

Memcached의 특징

  • 데이터 타입 String만 지원한다.
  • 데이터 저장은 오직 메모리에만 저장한다.
    • 이러한 이유로 메모리가 부족할 경우 일부 데이터를 삭제하여 메모리를 사용한다.
    • 메모리에만 저장할 수 있기 때문에 복제가 불가능하여 캐시로만 사용 할 수 있다.
  • 멀티쓰레드를 지원한다.
  • 캐시 용량은 key는 250byte, value는 1MB를 지원한다.
  • 수평적 확장이 가능하다.

Redis의 특징

  • 데이터 타입은 String, Set, List, Sorted, Hash, Bit arr, HyperLog, Streams을 지원한다.
  • 데이터 저장은 메모리를 포함하여 디스크에도 저장 할 수 있다.
  • 스냅샷을 통해서 디스크에 담을 수 있는데 이를 통해 비휘발성의 특징도 가지고 있다.
    • 반복적인 스냅샷을 통하여 디스크에 저장해 메모리의 여유 공간을 만들 수 있다.
  • 싱글쓰레드를 지원한다.
  • 캐시 용량은 key와 value모두 512MB를 지원한다.
  • 데이터를 복제하고, 들어온 데이터를 실시간 업데이트가 가능하여 서버 복제가 가능하다.
    • 이러한 이유로 스토리지로도 사용할 수 있다.
  • ACID를 유사하게 지원해서 트랜잭션을 걸 수 있다.
반응형

'TIL' 카테고리의 다른 글

[TIL] ALB, NLB, ELB의 차이점?  (0) 2024.04.16
[TIL] 로드 밸런싱  (0) 2024.04.15
[TIL] 면접 카타 9일차  (0) 2024.04.09
[TIL] 면접카타 8일차  (0) 2024.04.08
[TIL] 면저카타 7일차  (0) 2024.04.05

댓글