본문 바로가기

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

9.Redis, 문자열 데이터에 대해서 알아보자.

반응형

문자열 데이터

  • 문자열 데이터는 Key 하나에 문자열 하나를 저장할 수 있는 구조.
  • 저장 가능한 문자열 최대 크기
    • 512MB
  • 문자열 데이터 저장구조
    • 문자열 데이터를 저장 할 때는 인코딩된 문자열과 몇 가지 부가 정보가 포함된 구조체로 변환하여 저장함.
    • 이것을 레디스 객체형이라고 부름.

문자열 데이터의 입력 그리고 조회, 숫자의 증감

  • 다중 Key 에 대한 저장과 조회 처리 명령
    • mset
      • 키와 값의 쌍으로 이루어진 데이터를 저장함.
      • 명령) mset [key1] [value1] [key2] [value2] ....
      • 응답)<상태응답>, 항상 OK
    • mget
      • 주어진 키에 대한 값의 목록을 조회함.
        • 주어진 키가 존재하지 않으면, nil 로 표시됨.
      • 명령) mget [key1] [key2] ...
      • 응답)<멀티 벌크응답>, 조회된 키의 값 목록
    • 예제

  • mset 명령을 통해서 2개의 key 와 2개의 value를 입력함.
    • mget 명령을 통해서 k1 k2 k3 를 조회함
      • 결과는 k1, k2 는 찾았지만 k3 는 입력되지 않았으므로 nil 반환함.
  • 숫자의 증가 그리고 감소
    • Redis 는 저장된 문자열 데이터가 숫자일 경우, incr/decr 같은 숫자 증감 명령을 사용할 수 있음.
    • incr/decr 은 기존 연재한 "02.Redis, 레디스의 기본명령어에 대해서 알아볼까요?" 를 참조부탁드려요..^^;
    • 여기서는 incrby/decrby 명령을 알아보자.
    • incrby
      • 주어진 key에 저장된 숫자를 주어진 값만큼 증가시킴
      • 값에 음수가 입력되면, 주어진 값만큼 감소가 이루어짐.
        • 단, key에 저장된 값이 숫자일 때만 수행함.
      • 명령) incrby [key] [value]
      • 응답) <숫자응답> 명령이 실행된 후의 키의 값
    • decrby
      • 주어진 key에 저장된 숫자를 주어진 값만큼 감소시킴
      • 값에 음수가 입력되면, 주어진 값만큼 증가가 이루어짐.
        • 단, key에 저장된 값이 숫자일 때만 수행함.
      • 명령) decrby [key] [value]
      • 응답) <숫자응답> 명령이 실행된 후의 키의 값
    • 예제

  • incr 명령을 통해서 키(t:key1)를 생성하고 값이 1이됨.
    • incrby 를 통해서 값이 증가됨을 확인할 수 있으며, 음수일 경우 처리상황도 확인할 수 있음.
    • decby 를 통해서 값이 감소됨을 확인할 수 있으며, 음수일 경우 처리상황도 확인할 수 있음.
    • 단, 증감 처리는 64bit 부호화 정수 signed integer 로 표현할 수 있는 범위에서만 가능함.
      • 즉, 최대값/최소값이 존재함.
      • 그리고, 처리결과는 32bit , 64bit 인스턴스에 관계없이 동일함.
      • 왜냐하면, Redis 는 내부적으로 시스템 종속적인 정수형을 가지지 않기 때문에..
      • 문자열 데이터의 숫자 증감처리 명령을 사용할 때는 이점을 유의해야함.
    • 이외에도 비트연산도 가능하며, 저장된 문자열의 크기를 조회할 수 도 있음.

결론

  • Redis 는 문자열 데이터를 처리 할 수 있는 기능이 있음.
  • 문자열 데이터에 대해서 하나씩 처리할 수 도 있고, 다중으로 처리도 가능함.
  • 문자열 처리시 아래 제한 값을 유의해야함.
    • 저장 가능한 문자열의 크기
      • 최대 512MB 
    • 증감 처리 시 표현 범위
      • 64bit 부호화 정수 signed integer 로 표현할 수 있는 범위

  • 금일의 명언 한마디
    • 많은 사람들은 그냥 더 많은돈을 벌면, 돈문제들이 쉽사리 해결될 것이라고 생각한다.
      • 하지만, 많은 경우에 그것은 더 큰 돈문제를 야기시킬 뿐이다.
    • 대부분의 사람에게 돈문제가 있는 기본적인 이유는 현금흐름관리의 공부를 한적이 없기 때문이다. - 로버트 기요사키, 『부자아빠, 가난한아빠2』 중에서...

 


  • 금일의 영어 한마디
    • 질문) This is inexcusable!
      • 절대 용서 못해!
    • 응답) Hold on, let me explain.
      • 잠깐만, 나도 변명 좀 하자.
    • 해설)
      • inexcusable 은 "변명할 도리가 없다.(용서할 수 없다.)" 라는 의미
      • Hold on 은 상대방을 제지할 때 쓰는 표현.
      • 더 이상 못참겠다. 라고 표현 하려고 하면, "I can't stand this!" 라고 말함.
728x90
300x250