본문 바로가기

좋아하는 것_매직IT/9.redis

0.Redis, 레디스, 그리고 빅데이터에 대해서 간단히 알아보자.

반응형

레디스(Redis, Remote Dictionary Server)란?

  • 인메모리 데이터베이스 솔루션.
    • 즉, 모든 데이터를 메모리에 저장하고 조회함.
  • 오픈소스 NoSQL
    • 고성능 key-value 타입의 저장소로서 다양한 자료구조를 지원하는 NoSQL  
  • 다양한 자료구조 지원
    • 문자열, 리스트, 셋, 정렬된 셋, 해시 등등 
  • 참고페이지 : http://redis.io

레디스의 주요 정보 및 특성

  • 영속성을 지원하는 인메모리 데이터 저장소
  • 읽기성능증대를 위한 서버 측 복제를 지원함.
  • 쓰기성능증대를 위한 클라이언트 측 샤딩(Sharding)을 지원함.
  • ANSI C로 작성됨.
    • 즉, ANSI C 컴파일러가 동작하는 곳이면, 어디든 설치 및 실행 가능함.
  • Redis 클라이언트는 대부분의 언어로 포팅되어 있음.
    •  C,C++,C#, D, Erlang, lua, PHP, Python 등등
  • 현재(2019년 11월 4일) 안정화 버전.
    • 5.0.5 버전
      • Redis 5.0 is the first version of Redis to introduce the new stream data type with consumer groups, sorted sets blocking pop operations,
      • Redis 5 was release as GA in October 2018.
        • 참고) GA (General Availability) 버전 이란?
          • 테스트가 완료된 정식 릴리즈 버전으로 안정적으로 운영되어야 하는 프로젝트에서 사용. 대부분 GA 버전을 가져다 사용하면 된다.

빅데이터란 무엇인가?

  • 2008년 즈음부터 IT업계에 빅데이터 바람이 불기 시작함.
  • 간단히 말해서 "엄청난 양의 데이터"
    • 예를들면, 페이스북 사용자 수 는 2012년 10월을 기준으로 10억명을 돌파. 좋아요(1조1300억회), 친구연결횟수(1400억건), 업로드한 사진 수(2190억장) 이라고 함.
    • 대략적인 크기가 상상이 안됨, 이 데이터를 저장하려면? 하드디스크가 몇개 필요?
      • 이것이 바로 빅데이터 임.
  • 데이터는 점점 커지고 있으며, 그에 따라 빅데이터에 대한 정의도 나날이 변화하고 있음.
  • 그리고, 해당 빅데이터를 처리하는 기술들도 계속 발전중임.

빅데이터의 정의 

  • 첫번째, MGI에서 정의한 데이터베이스의 규모(데이터의 크기)에 기반한 분류 방법.
  • 두번째, EMC에서 정의한 데이터의 처리 방법에 기반한 분류 방법.
    • 거대한 비정형 데이터로부터 의미 있는 데이터를 도출해내는 방법의 적용 여부가 빅데이터인지 아닌지를 결정한다는 주장.
  • 참고)위키디피아에서의 정의
    • 기존 데이터베이스 관리도구의 능력을 넘어서는 대량(수십 테라바이트)의 정형 또는 심지어 데이터베이스 형태가 아닌 비정형의 데이터 집합조차 포함한 데이터로부터 가치를 추출하고 결과를 분석하는 기술
    • 참고페이지 : https://ko.wikipedia.org/wiki/%EB%B9%85_%EB%8D%B0%EC%9D%B4%ED%84%B0

빅데이터와 RDBMS의 한계, 그리고 NoSQL(Not Only SQL or Non-Relational Operator DataBase)

  • NoSQL 이란?
    • 상상조차 불가능한 양의 데이터, 그리고 비정형 데이터가 포함된 데이터를 저장하고 사용하는 방법을 연구하다가 나온 기술.
      • 즉, 전통적인 데이터 처리방법인 SQL 데이터베이스 or 전통적인 데이터 처리 애플리케이션만으로는 처리가 불가능한크기의 데이터를 처리하기 위해나온 기술들의 총칭.
    • 등장이유
      • RDBMS의 확장성에 기인

스케일업 / 스케일 아웃이란?

  • 스케일업  : 각 단일 서버(하드웨어)의 성능을 증가시켜서 더 많은 요청을 처리하는 방법
  • 스케일아웃 : 동일 사양의 새로운 서버(하드웨어)를 추가하는 방법  

결론

  • Redis는 고성능 인메모리 key-value 저장소로서 여러가지 데이터 타입을 지원함.
    • 문자열, 리스트, 해시, 셋, 정렬된셋 등등
  • 메모리 이외의 영구 저장소를 지원하므로, 인스턴스의 재시작에 대한 캐시 웜업에 대한 고려가 필요하지 않음
    • 캐시 웜업(Worm up)이란?
      • 캐시의 적중률을 높이기 위해서 미리 캐시 데이터를 생성하는 것
  • 읽기를 위한 서버 측 복제를 지원하며, 쓰기 성능 증대를 위한 클라이언트 샤딩을 지원함.
728x90
300x250