본문 바로가기
[IT]

[Redis] Redis 란 무엇인가?

by dop 2021. 3. 23.
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