2017년 7월 4일 화요일

Redis 자료구조

Redis는
  • BSD 라이선스 기반의 Key-value 캐시 & Store 소프트웨어.
  • String, hash, lists, sets, sorted set, bitmap, hyperloglogs 등 다양한 데이터 구조를 저장.
  • In memory 데이터베이스, NoSQL 데이터베이스로 분류

Redis의 장정
  • Redis는 데이터 저장소로 가장 I/O 속도가 빠른 장치인 메모리를 사용함.
  • 단순한 구조의 데이터 모델인 Key/Value방식으로 빠른 속도를 보장함
  • 캐시 및 데이터 스토어에 유리함
  • 다양한 API 지원

Redis 자료 구조

Strings
  • 키에 대한 값으로 문자열을 저장한다.
  • 가장 단순한 타입, redis를 사용한다면 가장 먼저 고려해볼 타입
  • JSON, XML 등 문자열로 된 데이터를 저장
  • 웹서비스에 최적
  • HTML문서의 전체 혹은 일부분을 캐시하여 사용할수 있다.
  • String이라고 해서 문자열만 저장하는게 아니고, 바이너리 데이터도 저장 가능
  • 최대 512M까지 저장이 가능
  • APPEND 명령어를 이용해서 문자열을 추가로 붙일수 있음
  • GETRANGE와 SETRANGE를 이용해서 해당 범위의 문자열을 리턴
lists
  • string의 형태로 되어 있으며, 삽입순서에 따라 정렬
  • 주요특징으로는 수백만건의 삽입과 삭제가 head와 tail에 일어나더라도 일정한 시간복잡도를 제공한다. head와 tail 근처의 요소에는 매우 빠르게 접근되지만 매우 큰 list의 중간 지점을 접근하면 느림.
  • 소셜 미디어의 타임라인 경우, LPUSH로 새로운 요소를 입력하고, LRANGE를 이용하여 최근 입력된 요소를 가져올수 있다.
Blocking operation on lists
  • list 데이터 타입에 대해서 Blocking operation을 지원
  • BRPOP, BLPOP명령은 호출하면, 데이터가 없을 경우 데이터가 준비될 때까지 block된다.

Hash
  • field&value의 쌍으로 이루어진 테이블을 저장할 수 있는 데이터 타입
  • 객체를 표현할때 최고의 데이터 타입

Set
  • 정렬되지 않은 String의 집합
  • 맴버의 추가와 제거가 가능하며 set안의 맴버들의 존재여부를 호가인 가능
  • set은 중복된 이름을 허용하지 않는다.
  • set의 흥미로운 점은 서버사이드에서 set과 set사이에 집합연산이 가능하다.
  • 데이터 타입을 통해 유니크한 값을 수집할 수 있다.

Sorted Set
  • set과 hash를 섞은 데이터 타입.
  • set과 마찬가지로 키는 유니트하며, 키로 정렬

Operation on range
Sorted set은 범위 검색을 위한 몇 가지 툴을 제공

Bitmaps
  • 바이너리 데이터에 대한 bit연산 기능
  • 가장 큰 장점은 0과 1의 상태를 가지는 아이템들을 대단히 효율적으로 저장하고, 읽을 수 있다.

HyperLogLogs
  • 어떤 데이터셋의 집합에서 유일한 원소의 개수를 검사하기 위해서 사용하는 알고리즘


댓글 없음:

댓글 쓰기

ETL 솔루션 환경

ETL 솔루션 환경 하둡은 대용량 데이터를 값싸고 빠르게 분석할 수 있는 길을 만들어줬다. 통계분석 엔진인 “R”역시 하둡 못지 않게 관심을 받고 있다. 빅데이터 역시 데이터라는 점을 볼때 분산처리와 분석 그 이전에 데이터 품질 등 데이...