Redis에 대해 알아보기 전에 일단 NoSQL에 대해 알아보자.
- NoSQL
NoSQL. 이름만 들었을 때는 "뭐지? SQL문 없이 쓰는 건가?"라고 생각하기 쉽다. 하지만 No SQL은 Not Only SQL의 줄임말로, 비관계형 데이터베이스를 지칭하고 NoSQL은 Key-Value나 컬럼, 문서 형식으로 데이터를 관리한다.
(일반적으로 먼저 접하게 되는 MySQL, MariaDB은 대표적인 관계형 데이터베이스(RDBMS)이다.)
NoSQL은 아주 많은 양의 데이터를 효율적으로 처리가 필요할 때, 데이터의 분산처리, 빠른 쓰기 및 데이터의 안정성이 필요한 경우에 RDBMS 보다 적합하다.
- Redis (InMemory Data Structure Store)
REDIS(REmote Dictionary Server)는 메모리 기반의 “Key-Value” 구조 데이터 관리 시스템이며, 모든 데이터를 메모리에 저장하고 조회하기에 빠른 Read, Write 속도를 보장하는 비 관계형 데이터베이스이다.
일반적인 데이터베이스는 Disk에만 저장되어 입출력 속도가 느린 반면 Redis는 데이터를 RAM(캐시 메모리)에도 데이터를 저장하여 다른 DBMS보다 빠르게 데이터를 주고받을 수 있다. RAM의 물리적인 저장공간보다 큰 데이터는 저장할 수 없다.
- Redis의 특징
- 빠른 처리 속도 (앞서 언급했듯이 입출력 속도가 느린 Disk를 사용하지 않기 때문)
- 데이터가 메모리와 Disk에 저장된다. (프로세스가 죽거나 Shutdown 되어도 Disk에 남아있는 데이터로 복구 가능)
- 만료일을 지정하여 만료가 되면 자동으로 데이터가 사라진다.
- 저장소 메모리 재사용이 불가능하다. (명시적으로 삭제만 가능함)
- 다양한 데이터 타입 제공 (String, List, Set, Hash, Sorted Set 등)
- 분산 메모리 처리에 적합하다. (메모리 여래 개를 이어 붙여서 관리가 가능하며, 큰 메모리하나 보다는 여러 개의 메모리로 구성된 것이 안전하다.)
- Redis 장점
1) List, 배열과 같은 자료구조를 처리하는데 유용하다.
RDBMS는 배열이나 리스트 저장을 위해선 관계를 맺는 등의 처리를 해주어야 했지만, Redis는 자체적으로 제공하기에 활용하기에 용이하다.
2) 메모리를 활용하면서 영속성을 유지할 수 있다.
SNAPSHOT 기능을 제공하여 메모리의 내용을 *.rdb 파일로 저장하여 해당 시점으로 복구할 수 있다.
3) Redis Server는 1개의 싱글 쓰레드로 수행된다. (서버 하나에 여러개의 서버를 띄우는 것이 가능하다.)
Master — Slave 형식으로 구성이 가능하다.(분실 위험 방지)
728x90
'[IT]' 카테고리의 다른 글
[JMeter] 웹 앱 성능 테스트 도구 (대용량 트래픽 생성) (0) | 2021.03.28 |
---|---|
[InteliJ] GroupId, ArtifactId (0) | 2021.03.27 |
[JAVA] static 메소드 (0) | 2021.03.25 |