현재 프로젝트의 사정상 , 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) 아직까지 한글판 서적이 없으며 , 제공되는 정보도 적음
댓글 없음:
댓글 쓰기