본문 바로가기
Database/NoSQL

[Redis] Intro

by junseokoo 2024. 11. 28.

  • 메모리 key/value 데이터구조 스토어
  • 로컬 환경에서 레디스 호출 EC2 인스턴스에 레디스를 설치해 인스턴스 메모리를 사용해 사용하는 방법
  • 클라우드 서비스를 이용해 외부 자원을 사용
  • 운영 중인 웹 서버에서 키-값 형태의 데이터 타입을 처리해야하고, I/O가 빈번히 발생해 다른 저장 방식을 사용하면 효율이 떨어지는 경우 사용 ex) 조회수와 같은 카운트 형태의 데이터, 사용자 세션관리,API캐싱

인메모리

  • 컴퓨터의 메인 메모리 RAM에 데이터를 올려서 사용하는 방법을 말한다.
  • why?
  • 속도 때문 SSD,HDD 같은 저장곤간에서 데이터를 가져오는 것보다 RAM에 올려진 데이터를 가져오는데 걸리는 속도가 훨씬 빠르다. 때문에 Redis는 빠른 속도가 큰 장점이다.
  • 레디스의 스키마는 데이터를 정규화하고, 데이터 로우에 대해 일관된 레퍼런스를 가지게 해줄 수 있게 해주는 용도로 존재한다.
  • Remote Dictionary Server를 나타내는 Redis는 빠른 오픈 소스 인 메모리 키 값 데이터 스토어 이다.
  • 1m/s 미만의 응답 시간을 제공하여 실시간 애플리케이션을 위해 초당 수백만 건의 요청을 지원할 수 있다. 빠른 성능덕에 캐싱,세션관리,게임,리더보드,실시간분석,지형 공간,라이드 헤일링, 채팅/메시징, 미디어 스트리밍 및 게시/구독 앱에서 주로 사용한다.
  • Amazon MemoryDB for Redis는 레디스와 호환되고 내구성이 뛰어난 인메모리 데이터베이스 서비스로 초고속 성능을 제공한다. 마이크로초 대기 시간으로 프라이머리 데이터베이스 및 데이터 스토어의 데이터 엑세스를 가속화하는 완전관리형 캐싱 서비스이다.

치명적 단점

  • 용량….
  • 기본적으로 RAM의 용량은 SSD,HDD에 비해서 낮기 때문에 메인 데이터베이스로 사용하기에는 무리가 있다.
  • key-value 형태의 NoSQL 이다. Redis가 다양한 형태의 데이터 구조를 지원하기는 하지만 복잡한 데이터를 저장하는 데이터베이스로 사용하기에는 어려움이 있다.
  • 그래서 메인보다는 캐시 데이터베이스 서버가 적합!

캐시

  • cache 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소이다. 캐시에 있는 데이터는 시간과 자원면에서 최소한의 비용으로 반복적으로 접근할 수 있다.
  • Local Cache
    • Local 장비 내에서만 사용되는 캐시
    • Local 장비의 Resource를 이용
    • 로컬에서 작동해 속도는 빠르지만 다른 서버와 데이터 공유가 어렵다.
  • Global Cache
    • 여러 서버에서 캐시서버에 접근하여 사용하는 캐시
    • 데이터를 분산 저장 가능
      • Replication 데이터 복제
      • Sharding 데이터 분산 저장
    • 로컬에 비해 상대적으로 느림 (네트워크 트래픽)
    • 별도의 Cache Server를 이용하기에 서버 간 데이터 공유가 쉽다.
  • Redissms Global Cache에 적합

 

'Database > NoSQL' 카테고리의 다른 글

[Redis] Cluster vs Sentinel  (0) 2025.04.11