Post

[DB] Redis

[DB] Redis

Remote Dictionary Server이다.

  • 비정형 데이터를 처리하기 위한 오픈 소스 기반의 NoSQL이다.
    • Key-Value 쌍으로 이루어진 구조
  • In-Memory 데이터 구조를 가졌다.
    • RAM에 데이터를 올려 처리하는 방법이다.
    • 휘발성을 가진다.
  • 사용자의 필요에 따라 여러 형태로 사용할 수 있다!

Redis 특징

  • 쿼리문이 필요하지 않다.
    • Key-Value 구조이기 때문이다!
  • In-Memory DB
    • 처리가 빠르다.
    • 서버 재시작 시 모든 데이터가 날아간다…
    • 복제할 수 있지만 사람의 실수는 복원할 수 없다.
    • 백업이 필요하다.
  • 여러 DB Type을 지원한다.
    • 개발 편의성이 높다.
    • Application layer에서 필요한 logic을 DB layer에서 줄일 수 있다.
  • Single Thread로 동작한다.
    • 한 번에 여러 클라이언트의 요청을 처리할 수 없다.
    • 시간 복잡도가 높은 요청이 여러 개 들어오면 너무 느려진다…
  • 여러 대의 서버 구성이 가능하다.
    • Master-Slave 형식이다.
    • 자동 파티셔닝이 지원된다.
    • 하지만, 파티셔닝 과정에서 Memory Flagmentation이 발생해 공간 낭비가 심해지거나 심지어 프로세스가 죽어버릴 수도 있다.
This post is licensed under CC BY 4.0 by the author.