공부, 기록

[NoSQL] Key-Value, Redis 본문

공부/DATABASE

[NoSQL] Key-Value, Redis

무는빼주세요 2021. 6. 26. 14:07

 

가장 단순한 구조 (유니크한 KEY 값과 그 값에 매팽되는 Value 값)

구조가 단순하기 때문에 속도 또한 빠르고 확장성이 좋다.

빠른 속도를 위해서 디스크가 아닌 메모리에서 데이터를 관리하는 방식을 사용.

단순한 구조로 인해 장점만큼 단점도 존재하는데 Key 값을 통한 검색이 아닌 Value를 통한 검색이 어렵다.

또한 간단한 조회를 위한 구조이므로 SQL 처럼 활용성 있는 질의언어가 없다.

 

 

사용 예시

 

세션 스토어

세션 데이터는 기본 키 이외의 다른 키에 의해 쿼리되지 않으므로 속도가 빠른 키-값 저장소가 세션 데이터에 더 적합. 일반적으로 키-값 데이터베이스는 관계형 데이터베이스에 비하여 페이지당 제공하는 오버헤드가 적다.

 

쇼핑몰의 장바구니

키-값 데이터베이스는 분산 처리 및 저장을 통해 한꺼번에 수백만 명의 사용자에게 서비스를 제공하는 동시에 대량의 데이터 처리와 매우 많은 양의 상태 변경 작업을 처리가 가능. 또한, 키-값 데이터베이스에는 내장형 중복 기능이 있어서 스토리지 노드의 손실을 방지할 수 있다.

 

대표적인 DBMS : Redis, Amazon DynamoDB

 

Redis(Remote Dictionary Server)

레디스는 데이터를 디스크가 아닌 메모리로 불러와서 처리하는 메모리기반의 DBMS로 속도가 매우 빠르다.

Lists, Sets, Sorted Sets, Hashes, Streams 같은 다양한 저장방식을 지원하며 레디스는 기본적으로 Single Thread 방식.

그러므로 큰사이즈의 O(N) 명령 사용시에는 주의가 필요.

 

 

주요 사용 사례

캐싱, 채팅, 메시징 및 대기열, 랭킹, 세션 스토어, 미디이 스트리밍 등

주로 실시간 처리가 필요하며 대용량의 데이터를 처리하는데 사용

 

 

참조 : 

 

https://aws.amazon.com/ko/nosql/key-value/

https://ojava.tistory.com/130

https://aws.amazon.com/ko/redis/

https://www.youtube.com/watch?v=mPB2CZiAkKM