[Redis] 1. Redis란? NoSQL & Redis 개념

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://bcho.tistory.com/654

https://www.joinc.co.kr/w/man/12/REDIS/RedisWithJoinc