Redis란?

ryudjae
|2021. 8. 16. 02:06
728x90

 

 

➡️Redis를 이해할려면 NOSQL에 대해서 알아야 한다. 

👉NOSQL(Not  Only SQL)이란?

  • RDBMS를 관계형 데이터베이스라고 부르는 반면 NOSQL은 비관계형 데이터 베이스이다.
  • 보통 NOSQL은 KEY-VALUE나 컬러,문서 형태의 데이터 모델을 이용한다.
  • 관계형 데이터베이스가 아닌 다른 형태로 데이터를 저장하는 기술이라고 생각하면 좀 이해가 된다.

👉NOSQL을 언제 쓰는가?

아주 많은 양의 데이터를 효율적으로 처리가 필요할 때, 데이터의 분산처리, 빠른 쓰기 및 데이터의 안정성이 필요할 때 사용한다.

특정 서버에 장애가 발생했을 때에도 데이터 유실이나 서비스 중지가 없는 형태의 구조이기 때문에 사용한다.

 

💻Redis란?

  • REDIS(REmote Dictionary Server)는 메모리 기반의 “키-값” 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비 관계형 데이터베이스이다.
  • 레디스는 크게 5가지< String, Set, Sorted Set, Hash, List >의 데이터 형식을 지원한다.
  • Redis는 빠른 오픈 소스 인 메모리 키-값 데이터 구조 스토어이며, 다양한 인 메모리 데이터 구조 집합을 제공하므로 사용자 정의 애플리케이션을 손쉽게 생성할 수 있다.
  • 아래 그림은 레디스 구조를 이미지화 한 것이다.

https://bcho.tistory.com/654

 

💻Redis특징

  • 영속성을 지원하는 인메모리 데이터 저장소이다.
  • 읽기 성능 증대를 위한 서버 측 복제를 지원한다.
    • Redis가 실행중인 서버가 충돌하는 경우 장애 조치 처리와 함께 더 높은 읽기 성능을 지원하기 위해 슬레이브가 마스터에 연결하고 전체 데이터베이스의 초기 복사본을 받는 마스터 / 슬레이브 복제를 지원한다. 마스터에서 쓰기가 수행되면 슬레이브 데이터 세트를 실시간으로 업데이트하기 위해 연결된 모든 슬레이브로 전송된다.
  • 쓰기 성능 증대를 위한 클라이언트 측 샤딩을 지원한다.
  • String, Set, Sorted Set, Hash, List와 같은 다양한 데이터형식을 지원한다.

💻Redis장점 

  • 리스트,배열과 같은 데이터를 처리하는데 용이하다.
    • Value값으로 String,List,Set,Set Sorted,Hash등 여러 데이터 형식을 지원하기에 , 다양한 방식으로 데이터를 활용 할 수 있다.
  • 리스트형 데이터 입력과 삭제가 NOSQL에 비해서 10배정도 빠르다.
    • 여러 프로세스에서 동시에 같은 키값에 대한 갱신을 요청할 경우,Atomic처리로 데이터 부정합 방지 Atomic처리 함수를 제공한다.
  • 메모리를 활용하면서 영속적인 데이터 보존이 가능하다.
    • 명령어로 명시적으로 삭제,expires를 설정하지 않으면 데이터가 삭제되지 않는다.
    • 스냅샷 기능을 제공하여 메모리 내용을 .rdb파일로 저장하여 해당시점으로 복구 할 수 있다.
  • Redis Server는 1개의 싱글 스레드로 수행되며, 따라서 서버 하나에 여러개의 서버로 띄우는 것이 가능하다.

 

728x90

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

[DB]이상현상(Anomly), 함수 종속성 (Functional Dependency)  (0) 2021.09.13
[DB] 정규화(Normalization)  (0) 2021.09.11
[MYSQL]SQL_1  (0) 2021.08.21
데이터 베이스 시스템 개념  (0) 2021.07.20
DBMS란 무엇인가  (0) 2021.07.11