[REDIS] 특징

박상준·2024년 3월 20일
0

REDIS

목록 보기
4/21
post-custom-banner

인메모리 데이터 저장

  • 데이터 저장 방식
    • 모든 데이터를 메모리 RAM 에 저장한다.
    • 백업과 스냅샷을 위해 디스크 일부를 사용하긴함.
      • 하지만, 실제로 Redis 서버가 활용하는 데이터는 모두 메모리에 저장됨.
  • 휘발성 데이터 처리
    • 인메모리 DB 특성상 주로 휘발성 데이터를 저장
    • RDB ( Redis Database )와 AOF ( Append Only File )옵션으로 데이터를 안전하게 영속적으로 관리가능

싱글스레드 아키텍처

  • 싱글 스레드 동작
    • 멀티스레드로 DB 엔진을 구성할 때 장점이 있긴하지만.
      • 아무래도 프로그램 설계나 개발시 복잡도가 늘어남.
      • 이와 관련되어서 DB 비관적 락을 생각할 수 있을 것 같다.

클러스터 모드 지원

  • 고가용성과 안정성
    • 다중 노드와 데이터를 분산 저장한다.
    • 예시 특정 데이터를 여러 서버에 분산하여 저장 하나의 서버가 고장나더라도, 해당 서버에 저장된 데이터의 복사본이 다른 서버에도 존재한다.
      • 그렇기에, 데이터의 손실없이 시스템을 운영할 수 있다.

실시간 어플리케이션 개발을 지원

  • PubSub 기술

    • PubSub(Publish / Subscribe) 기술을 자체적으로 구현

    • 실시간 채팅이나 알림 서비스 같은 어플리케이션을 쉽게 개발이 가능

    • 예시

      Server-Sent Events + Redis Pub/Sub 기반으로 개발이 가능함

      Server-Sent Events

      • 서버에서 클라이언트로 실시간으로 데이터를 푸시하는 HTML5 의 표준 기술임.

  • 레디스 아키텍처 선택의 기준

    HA

    • 여러 서버가 모인 구조임.
    • MSA 구조가 아닐까 싶다.
    • 일단 사이드 프로젝트의 경우 단일 서버로 구성이 될 것이기 때문에, HA 기능이 불필요하다.

    Replication

    • 복제 기능인데..
    • 단일 서버인 경우에도 의미가 있다.
    • 일반적으로 클러스터링을 사용하지 않는 경우, Master - Slave 구조를 채택하는데
      • 해당 구조에서 실시간으로 Master 에서 슬레이브로 복사할 수 있다.
profile
이전 블로그 : https://oth3410.tistory.com/
post-custom-banner

0개의 댓글