2013년 2월 22일 금요일

Redis VS Cassandra 비교 분석(1)

수집되는 Data의 빠른 처리를 위해 NOSQL에 관심을 가짐

현재 프로젝트의 사정상 , Window OS 를 지원하며 , 조회 및 관리를 위해
컬럼형 DataBase (key-value) 구조의 NOSQL DB를 검색

Cassandra 와 Redis 가 후보군으로 올라옴.

해서 2가지를 비교하여 정리함.

Cassandra


1. Cassandra 개요

  1) FaceBook 에서 개발하여 현재는  아파치 오픈 소스로 공개된 분산형 데이터 베이스

  2) NOSQL 데이터베이스 에서 Key-value 형, 컬럼형 으로 분류됨

2. Cassandra 특징

  1) keyspace > column family > row key > super column > cloumn 형태로 구성

  2) keyspace 단위로 관리하는 형식

  3) 보통 어플리케이션 하나당 keyspace 하나씩 생성

3. Cassandra 의 장점


  1) 대량 데이터를 다수의 부산된 서버에서 관리해야 할 경우 적합
 
  2) 특히 사용자가 많을 경우 , 대량 write 가 발생할 경우 적합

  3) 아마존 다이나모 방식을 구현, 연속적인 서비스 제공에 중점을 둔 구조 . 가용성 뛰어남

  4) 서버 분산 시스템일 경우 서비스 중단없이 서버 추가 가능

4. Cassandra 의 단점

  1) Row key 와 컬럼 두가지에 대한 인덱스만 가능하기 때문에 , 복잡도 높은 검색 불가능

  2) 하위 컬럼 (super column > column) 에 대한 인덱싱 불가능

  3) 데이터에 대한 갱신 및 입력시 Atomic 한 처리 어려움

  4) Java 와 연동시 , Library 량이 많아 사용 불편함.

Redis


1. Redis 개요

  1) Salvatore Sanfilippo 가 개발한 오픈소스 소프트웨어

  2) 휘발성이면서 영속성을 가지고 있음

  3) memcached 와 Tokyo Tyrant 의 속성을 지닌 key-value 형 DataBase

2. Redis 특징

  1) memcached 기반으로 구성

  2) DB 를 Index 로 관리하는 방식 사용

3. Redis 의 장점

   1) 기본적으로 데이터를 메모리에 보존하므로 처리속도가 크게 빠름

   2) Redis는 단독 데이터베이스로도 사용이 가능

   3) 관련 명령어가 굉장히 많이 준비되어(100 종류 이상) , Atomic 한 처리 가능

   4) 데이터를 disk 에 기록하는 SnapShot 기능(영속화) - 기록시간 Default 15분간 1건

   5) 다양한 데이터 형식 지원 (문자열 , List , Set , Sorted Set , Hash 등)

   6) 데이터의 추가 , 삭제 , 패턴 찾기 등 배열 형식 데이터에 대한 여러 기능 제공

   7) SnapShot 시점에 전체 데이터에 대한 I/O 가 발생하나 Sequential access 로 처리 되므로

       부하는 크지 않음


4. Redis 의 단점

  1) 국내에 도입 사이트가 현저히 적음 (사례 : NHN- Line 메신저 )

  2) 아직까지 한글판 서적이 없으며 , 제공되는 정보도 적음



댓글 없음:

댓글 쓰기