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는 빠른 오픈 소스 인 메모리 키-값 데이터 구조 스토어이며, 다양한 인 메모리 데이터 구조 집합을 제공하므로 사용자 정의 애플리케이션을 손쉽게 생성할 수 있다.
- 아래 그림은 레디스 구조를 이미지화 한 것이다.
💻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 |