빅데이터란
1. 엄청난 양의 데이터(데이터베이스의 규모(데이터의 크기)에 기반한 분류 방법)
2. 정형화된 데이터가 아닌 비정형 데이터를 처리하는 기술 및 아키텍처(데이터 처리 방법에 기반한 분류 방법)
빅데이터와 RDBMS의 한계
스케일
스케일 업 : 각 단일 서버(하드웨어)의 성능을 증가시켜서 더 많은 요청을 처리하는 방법
스케일 아웃 : 동일한 사양의 새로운 서버(하드웨어)를 추가하는 방법
스케일 업 기반 처리의 한계
스케일 업은 명확한 한계가 존재한다. 하나의 장비에 설치할 수 있는 CPU 및 메모리와 디스크 수에는 한계가 있기 때문이다.
또한 소프트웨어 구조상 아무리 스케일 업을 한다고 해도 상승 가능한 물리적인 한계가 존재한다.
NoSQL
- 상상조차 불가능한 양의 데이터, 게다가 비정형 데이터가 포함된 데이터를 저장하고 사용하는 방법을 연구하다가 나온 기술
- Not Only SQL 또는 Non-Relational Operator DataBase
- 전통적인 데이터 처리 방법인 SQL 데이터베이스 또는 전통적인 데이터 처리 애플리케이션만으로는 처리가
불가능한 크기의 데이터를 처리하기 위해 나온 기술들의 총칭
- 대부분의 NoSQL은 처음부터 스케일 아웃을 염두에 두고 설계되었기 때문에 데이터의 증가나 요청량이 증가하더라도 동일하거나 비슷한 사양의 하트웨어를 추가하면 대응이 가능하다.
Redis 란
- 영속성을 지원하는 인메모리 데이터 저장소
- 읽기 성능 증대를 위한 서버 측 복제를 지원
- 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원
- ANSI C로 작성되었기 때문에 ANSI C 컴파일러가 동작하는 곳이면 어디든 설치 및 실행 가능
- 레디스 클라이언트는 대부분의 언어로 포팅
- 성능적으로 검증된 솔루션
- 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형 지원
API: Tons of languages,
Written in: C, Concurrency: in memory and saves asynchronous disk after a defined time.
Append only mode available.
Different kinds of fsync policies.
Replication: Master / Slave, Misc: also lists, sets, sorted sets, hashes, queues.
Redis Cli
- set : 데이터값 set
- append : 데이터 append
- get : 데이터 조회
- incr : 데이터값 1 증가(저장된 값이 숫자일 경우)
- decr : 데이터값 1 감소(저장된 값이 숫자일 경우)
- lpush : 리스트 데이터값 push
- lrange : 리스트 데이터 range 조회
- sadd : 비정렬 set 데이터 추가
- smembers : 비정렬 set 데이터 조회
- zadd : 정렬 set 데이터 추가
- zrange : 정렬 set 데이터 range 조회
- hset : 해시 데이터 set
- hget : 해시 데이터 get
- hgetall : 해시 데이터 전체 get
###