2019. 9. 9. 14:31ㆍ개발/기타
NoSQL의 개념과 필요성
1960년대 컴퓨터가 처음 발명된 이후 인류는 수 많은 데이터를 양산하고 있으며, 이를 효과적으로 저장 관리해 오고 있습니다. 하지만 기존의 File System과 DBMS로는 오늘날 기하급수적으로 증가하는 데이터를 처리하기에는 많은 부담과 문제가 있습니다. 특히 장비의 성능이 좋을수록 성능을 향상( Scale-up: 수직적 확장 ) 시키는 비용이 기하급수적으로 증가하기 때문입니다.
따라서 2000년대 초반, 여러대의 컴퓨터에 데이터를 분산하여 저장하는 것( Scale-out: 수평적 확장 )을 목표로 NoSQL이라는 새로운 관리 기술이 등장하게 됩니다. 기존 관계형 DBMS는 Client/Server 플랫폼을 기반으로 한다면 NoSQL은 이에 Client/Server 플랫폼과 Cloud Computing 플랫폼 모두 기반으로 합니다. 여기서 Not only SQL의 의미를 확인 할 수 있습니다.
특징
1. Cloud Computing 환경에 적합합니다.
2. 유연한 데이터 모델입니다.
3. 빅데이터 처리에 효과적입니다.
CAP 이론
CAP 이론은 분산 데이터베이스 시스템에서 의미있는 이론입니다. 분산 데이터베이스의 세 가지 속성인 일관성(Consistency) , 가용성(Availability) , 네트워크 파티션 허용(Partition Tolerance) 을 나타냅니다.
CAP 이론과 이를 보완한 PACELC 이론에 대한 자세한 내용은 Ohjongsung's Dev Story에 있습니다.
Redis
- REmote DIctionary System (인메모리 원격 캐시 서버)
- In-Memory 기반의 데이터 저장 구조입니다.
- 명시적으로 삭제, Expire를 설정하지 않으면 데이터는 삭제되지 않음
- 여러대의 서버 구성이 가능
메모리를 이용하여 고속으로 <key, Value> 스타일의 데이터를 저장하고 불러올 수 있는 원격 시스템
Pub/Sub Model
1:1, 1:N 형태의 pub/sub messaging 지원, pattern matching을 통해 다수의 topic에서 message를 subscribe 할 수 있다.
개인적으로 궁금했던 Kafka와 Redis의 차이점에 대한 글을 공유합니다.
Expriation
Data에 대한 생명 주기를 정해 일정 시간이 지나면 자동으로 삭제 할 수 있음
1. Active Client가 expired된 데이터에 접근 시, 체크해서 삭제
2. Passive 주기적으로 key들을 랜덤으로 100개만 스캔해서 삭제
References
https://ohjongsung.io/2019/05/01/cap-%EC%9D%B4%EB%A1%A0%EA%B3%BC-pacelc-%EC%9D%B4%EB%A1%A0
https://www.joinc.co.kr/w/man/12/REDIS/RedisWithJoinc
'개발 > 기타' 카테고리의 다른 글
[Redis] Redis Cluster 사용하기 (Cluster Proxy) (0) | 2019.09.11 |
---|---|
[Redis] Redis Master-Slave 사용하기 (Sentinel, HAProxy) (30) | 2019.09.11 |
[Redis] 4. 메모리 운영기법 및 주의점 (0) | 2019.09.11 |
[Redis] 3. 명령어 및 데이터 구조에 따른 데이터 처리 (0) | 2019.09.09 |
[Redis] 2. Windows에 Redis 설치하기 (0) | 2019.09.09 |