Redis 란?

김멉덥·2022년 11월 21일
0

기술면접 공부

목록 보기
8/8
post-thumbnail

Redis에 대해서 간단히 설명해주세요.

CS 및 기술 면접 준비 스터디

답변

  • 오픈 소스 인 메모리 키 값 데이터 구조 스토어입니다.
  • 인메모리 방식이기 때문에 디스크에 데이터를 저장하는 다른 RDBMS보다 훨씬 빠릅니다.
  • Redis는 다양한 인 메모리 데이터 구조 집합(문자열, 리스트, 맵, 집합)을 제공합니다.

Redis 란?

REmote DIctionary Server 의 약어

빠른 오픈 소스 인 메모리 키 값 데이터 구조 스토어

캐시 서버(Cache Server)에 대해서

데이터베이스가 있는데도 Redis라는 인메모리 데이터 구조 저장소를 사용하는 이유는 무엇일까?

  • DB는 데이터를 물리 디스크에 직접 쓰기 때문에 서버에 문제가 발생하여 다운되더라도 데이터가 손실되지 않는다.
  • 하지만 매번 디스크에 접근해야하기 때문에 만약 많은 사용자들이 접근하게 된다면 부하가 많아져서 느려질 수 있는 단점이 존재한다.
  • 따라서 일반적으로 서비스 운영 초반을 벗어나 규모가 커지게 되면, 사용자가 늘어나고, 이에 따라 데이터 베이스가 과부하 될 수 있기 때문에 이때 캐시 서버를 도입하여 사용한다. ⇒ 그리고 이 캐시 서버로 이용할 수 있는 것이 바로 Redis
  • 캐시는 한번 읽어온 데이터를 임의의 공간에 저장하여 다음에 읽을 때는 빠르게 결괏값을 받을 수 있도록 도와주는 공간이다.
  • 같은 요청이 여러 번 들어오는 경우 매번 DB를 거치는 것이 아니라 캐시 서버에서 첫 번째 요청 이후 저장된 결괏값을 바로 내려주기 때문에 DB의 부하를 줄이고 서비스의 속도도 느려지지 않게 된다.

Redis 특징

  • 보통 데이터베이스는 하드 디스크나 SSD에 저장한다. 하지만 Redis는 메모리(RAM)에 저장해서 디스크 스캐닝이 필요없어 매우 빠르다는 장점이 존재한다.
  • 주요 Redis 사용 사례로는 캐싱, 세션 관리, pub/sub(발행/구독)순위표 등이 존재한다.
  • 데이터 구조는 key/value 값으로 이루어져 있다. → 따라서 Redis는 비정형 데이터를 저장하는 비관계형 데이터베이스 관리 시스템이다.
  • Single Threaded 이기 때문에 한 번에 하나의 명령만 처리할 수 있다.

어라 근데 RAM은 휘발성이지 않나요…?

→ 이를 막기위한 백업 과정이 존재한다 !! (Redis의 영속성)

Redis 영속성

Redis는 지속성을 보장하기 위해 데이터를 DISK에 저장할 수 있다.
서버가 내려가더라도 DISK에 저장된 데이터를 읽어서 메모리에 로딩을 한다.

  • RDB (snapshot) 순간적으로 메모리에 있는 내용을 DISK에 전체를 옮겨 담는 방식
  • AOF (Append Only File) 명령(쿼리)들을 저장해두고, 서버가 셧다운되면 재실행해서 다시 만들어 놓는 방식
    (Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태)

Redis의 자료구조 5가지

  1. String (text, binary data → 가장 일반적인 key - value 구조의 형태) - 512MB까지 저장 가능
  2. set (String의 집합)
  3. sorted set (set을 정렬해둔 상태)
  4. Hash
  5. List (양방향 연결리스트도 가능)

참고 자료

profile
데굴데굴 뚝딱뚝딱 개발기록

0개의 댓글