본문 바로가기
기타 도서 리뷰/기타

이것이 레디스다 - 정경석 지음

by java개발자 2015. 10. 5.

이것이 레디스다 - 정경석 지음

1장 들어가며
2장 빨리 시작해보기
    2.4.1 문자열 명령
        set 키 값 - O(1)
        append 키 값 - O(1)
        incr 키 값 - O(1)
        decr 키 값 - O(1)
    2.4.2 리스트 명령
        lpush 키 값 [값,,,]  - O(1)
        lrange 키 시작 종료인덱스  - O(N)
    2.4.3 셋 명령
        sadd 키 값 [값,,,]  - O(N)
        smembers 키 - O(N)
    2.4.4 정렬된 셋 명령
        zadd 키 가중치 값 [가중치 값,,,]  - O(logN)
        zrange 키 시작 종료인덱스 [withscores]  - O(log(N)+M)
    2.4.5 해시 명령
        hset 키 필드이름 값 - O(1)
        hget 키 필드이름 - O(1)
        hgetall 키 - O(N)
3장 NoSQL
    3.3 CAP 정리   
        3.3.1 일관성
            다중 클라이언트에서 같은 시간에 조회하는 데이터는 항상 동일한 데이터임을 보증하는 것
            카산드라의 일관성 레벨 : One, Quorum, All
        3.3.2 가용성
            모든 클라이언트의 읽기와 쓰기 요청에 대하여 항상 응답이 가능해야 함을 보증하는 것
            단일 고장점 SPOF : 시스템을 구성하는 개별 요소 중에서 하나의 요소가 망가졌을 때 시스템 전체를 멈추게 만드는 요소
            HBase는 단일 고장점... 하둡이 제공하는 HDFS에서 동작하는데, 하둡의 네임노드가 단일고장점이다.
                > 보안책 : 리눅스의 HA솔루션, DRDB 솔류션 필요
        3.3.3 네트워크 분할 허용성
            지역적으로 분할된 네트워크 환경에서 동작하는 시스템에서 두 지역 간의 네트워크가 단절되거나 네트워크 데이터의 유실이 일어나더라도 각 지역 내의 시스템은 정상적으로 동작해야 함을 의미
    3.4 NoSQL 분류
        3.4.1 키-값 모델
            레디스, 리악, 다이나모, 볼드모트
        3.4.2 문서 모델
            몽고디비, 카우치베이스, 테라스토어, 레이븐디비
        3.4.3 컬럼 모델
            HBase, 카산드라,  하이퍼 테이블
        3.4.4 그래프 모델
    3.5 언제 NoSQL을 사용해야 하는가
        일관성 모델
        데이터 모델
        읽기 쓰기 성능
        단일 고장점
        원자성 지원
        하드웨어 구성
        무중단 시스템
4장 레디스 시작
    4.2.1 문자열 데이터
        mset 키 값 [키 값,,,] - O(N)
        mget 키 [키,,,] - O(N)
        setnx 키 값 - O(1)    --이미 존재하면 저장하지 않음
        msetnx 키 값 [키 값,,,]  - O(N) --(하나라도)이미 존재하면 저장하지 않음
        getset 키 값  - O(1) --이미 존재하더라도 이전의 값을 돌려주고, 새값을 입력
        incrby 키 값 - O(1)
        decrby 키 값 - O(1)
        setbit 키 오프셋 값 - O(1)  --비트 범위
        getbit 키 오프셋 - O(1)  --비트 범위
        strlen 키 - O(1)
        bitcount 키 [시작] [종료] - O(N)  --바이트 범위
    4.2.2 해시 데이터
        hmset 키 필드 값 [필드 값,,,] - O(1)
        hsetnx 키 필드 값  - O(1)
        hmget 키 필드 [필드,,,]  - O(1)
        hlen 키  - O(1)  --필드개수
        hdel 키 필드 [필드,,,]  - O(1)  --필드 삭제
        hincrby 키 필드 지정값  - O(1)
        hincrbyfloat 키 필드 지정값  - O(1)
        hkeys 키  - O(N)
        hvals 키  - O(N)
    4.2.3 셋 데이터
        sinter 키 [키,,,] - O(N)  --교집합
        scard 키  - O(1) --요소의 개수
        srem 키 요소 [요소,,,]  - O(1)   --요소 삭제
        spop 키  - O(1)  --임의 요소 삭제
        sismember 키 요소  - O(1)  --요소 중복검사
        smove 원본키 대상키 요소 - O(1)
    4.2.4 정렬된 셋 데이터
        zrevrange 키 시작 종료인덱스 [withscores]   - O(log(N) + M)
        zincrby 키 증감값 요소  - O(logN)
        zrank 키 요소  - O(logN)
        zrevrank 키 값 - O(logN)
        zscore 키 값 - O(1)
        zrevrangebyscore 키 최대가중치 최소가중치 [withscores] [limit a b]  - O(log(N)+ M)
        +inf , -inf : 무한대
        (3 (1 : 초과, 미만
    4.2.5 리스트 데이터
        lindeex 키 조회인덱스  - O(N)
        rpop 키  - O(1)
        blpop 키 [키,,,] 만료시간  - O(1)
        brpop 키 [키,,,] 만료시간  - O(1)
    4.2.6 키 관리
        del 키 [키,,,] - O(1)
        rename 변경할키 변경될키 - O(1)
        expire 키 만료시간 - O(1)
        ttl 키 - O(1)
        exists 키 - O(1)
        expireat 키 유닉스타임스탬프 - O(1)
        persist 키 - O(1)
        keys 조회할패턴  - O(N)    --운영중 사용X