DB/Redis

[Redis] Redis란?

27200 2024. 9. 3. 16:51

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

데이터베이스, 캐시, 메시지 브로커로 사용되는 인메모리 데이터 구조를 가진 저장소다.


Redis의 특징?

  • Key - Value 구조이기 때문에 쿼리를 사용하지 않는다.
  • 데이터를 디스크에 쓰는 구조가 아니라 메모리에서 처리되기 때문에 속도가 빠르다
  • 쓰기 성능 증대를 위한 클라이언트 측 샤딩 지원
  • String, Lists, Sets, Sorted Sets, Hashes 자료 구조를 지원한다

레디스가 지원하는 다양한 자료구조들이다.

  • Single Thread다. 즉, 한번에 하나의 명령만 처리할 수 있다. 다만 중간에 처리 시간이 긴 명령이 들어오게 된다면 뒤 명령어들이 지연될 수 있다.
  • AOF, RDB 방식을 통해 백업 기능 제공
    • AOF(Append On File) 방식: Redis의 모든 write/update 연산 자체를 모두 log 파일에 기록하는 형태
    • RDB(Snapshotting) 방식: 순간적으로 메모리에 있는 내용 전체를 디스크에 담아 영구 저장하는 방식

→ 레디스는 고성능 Key - Value 저장소로 다양한 자료구조를 지원하는 NoSQL이다.

위와 같은 특징들로 인한 주의할 점이 존재한다.

  1. 인메모리 데이터베이스기 때문에 서버가 다운 될 경우 데이터 유실이 발생할 수 있다.
  2. 메모리를 이용하는 것으로 메모리 관리가 중요하다.
  3. Single Thread기 때문에 한번에 하나의 명령만 처리가 가능하다. → 시간이 오래 걸리는 요청의 경우 신중한 접근이 필요하다.
  4. 메모리 단편화 문제가 발생할 수 있다.