본문 바로가기
Back-end/DB

Redis란 무엇일까

by somlang_bba 2021. 12. 7.
728x90

이전에도 얼핏 레디스라는 용어를 들어본 적이 있었는데, 오늘 우연히 또한번 Redis에 대해서 듣게 되어 정리를 해서 알아두려고 한다.

 

결론부터 말하면 Redis는 key:value 형식의 NoSQL DB이다.

 

Redis는 쉽게 생각해서 소스 내에 위치한 자그마한 DataBase라고 생각해도 될 것 같다.

소스 내에 존재하는 DB가 있다고 생각해보면 IO작업을 하지 않아도 되고 그만큼 비용과 시간을 아낄 수 있는 장점이 있다.

 

기존의 RDBMS(관계형 데이터 베이스)와 무슨 차이가 있는지를 알아보기 위해 NoSQL과 RDBMS의 차이에 대해서 정리해둔 표를 가져왔다.

 

  NoSQL RDBMS
적합한 환경 :
  • 대규모 데이터, 관련 없는 데이터, 확정되지 않은 데이터 또는 빠르게 변화하는 데이터의 처리
  • 스키마 중립적 데이터 또는 앱에 의해 결정되는 스키마
  • 강력한 일관성보다 성능과 가용성이 더 중요한 앱
  • 세계 각지의 사용자에게 서비스를 제공하는 상시 가동형 앱
  • 사전에 파악 가능한 논리적이고 뚜렷한 요구 사항이 있는 관계형 데이터의 처리
  • 앱과 데이터베이스 간에 동기화된 상태로 유지해야 하는 스키마
  • 관계형 구조를 위해 빌드된 레거시 시스템
  • 복잡한 쿼리 또는 다중 행 트랜잭션이 필요한 앱
시나리오 :
  • 모바일 앱
  • 실시간 분석
  • 콘텐츠 관리
  • 맞춤화
  • IoT 앱
  • 데이터베이스 마이그레이션
  • 회계, 재무, 뱅킹 시스템
  • 재고 관리 시스템
  • 트랜잭션 관리 시스템
규모 :
  • 데이터를 여러 서버로 분할하여 수평적으로 확장
  • 서버 부하를 증가하여 데이터를 수직으로 확장
데이터모델 :
  • 데이터베이스 형식: 키-값, 문서, 열 형식 및 그래프 데이터베이스
  • 데이터베이스 형식에 따라 데이터 저장
  • 데이터베이스 형식: 행으로 구성된 테이블, 관계로 그룹화
  • SQL(구조적 쿼리 언어) 사용
  • 테이블에 있는 행으로 데이터 저장, 관련 있는 데이터는 별도로 저장되고 복잡한 쿼리를 위해 조인됨

[출처: Microsoft Azure]

 

Redis는 NoSQL중에서도 key-value 형태로 데이터를 유지하는 In-Memory DB인데, 주로 스프링부트에서 세션관리하는데 사용한다고 한다.

 

자세한 사용법은 다음에 실제로 사용할 일이 생기면 다시 정리해보도록 하겠다.

(참고할 문헌 : https://coding-start.tistory.com/126)

728x90

'Back-end > DB' 카테고리의 다른 글

ET(C)L : 데이터 추출, 변환, (정제,) 적재  (0) 2023.01.06