• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Redis Data Type 1
        2023년 06월 02일
        • starryeye
        • 작성자
        • 2023.06.02.:07
        반응형

        Redis 는 Key-Value store 이다.

        이때, Value 에 해당하는 부분에서 다양한 데이터 구조를 지원한다.

         

        하나씩 살펴보자..

         

        1. Strings

        Key 하나에 Value 는 문자열에 해당된다.

         

        특징

        1. 문자열을 저장할 때, Byte 배열로 저장된다.

        -> 따라서, 바이너리로 표현가능한 모든 데이터를 저장할 수 있다. (Binary-Safe)

        -> 주로 캐시에서 이용되며, 이를 이용해서 정적 웹 컨텐츠(HTML, JPG, JSON 등)들을 저장

         

        2. 문자열에 저장할 수 있는 최대 크기는 512MB 이다.

         

        3. 대표 명령어

        명령어 기능
        SET [Key] [Value]
        GET [Key]
        해당 키에 문자열 값을 저장하고 반환 받는다.
        덮어쓰기 가능
        SET [Key] [Value] EX [Seconds] 해당 키에 문자열 값을 저장하면서, 만료시간을 지정해준다.
        INCR [Key]
        DECR [Key]
        해당 키의 값을 1 증가 시키거나 감소시킨다.
        값을 Integer 로 취급한다.
        Atomic 보장한다.
        -> 응용하면 Counter 가 된다.
        INCRBY [Key] [Increment]
        DECRBY [Key] [Decrement]
        해당 키의 값을 해당 값만큼 증가 시키거나 감소시킨다.
        MSET [Key1] [Value1] [Key2] [Value2]
        MGET [Key1] [Key2]
        여러 키의 문자열 값을 저장하고 반환 받는다.
        SET/GET 을 한번에 보내서, 네트워크 부하를 줄일 수 있다.

        http://redisgate.kr/redis/command/strings.php

         

        4. 예시

        > user:1 이라는 Key 에 salvatore 라는 Value 로 저장

        > user:1 이라는 Key 의 값을 반환

         

        > ticket:27 이라는 Key 에 "\"{'username': 'priya', 'ticket_id': 321}\"" 이라는 Value(JSON) 로 저장

        만료는 100초로 지정하였다.

         

        > views:page:2 라는 Key 의 Value 를 1(Integer) 증가 시켰다. 여기선, 최초 저장이라 1로 저장

        > views:page:2 라는 Key 의 Value 를 10(Integer) 증가 시켰다.

        https://redis.io/docs/data-types/strings/

         

         

        2. Lists

        Key 하나에 Value 는 여러 값의 집합인 형태이다.

         

        특징

        1. Value 의 자료구조는 Linked-List 이다.

        따라서, 인덱스 접근은 순차 접근이라 느리지만 데이터 추가/삭제는 빠르다.

         

        2. Queue, Stack 등의 자료구조로 이용될 수 있다.

         

        3. value 가 하나도 없으면 해당 key는 삭제되며, value가 최초 저장되면서 key 는 생성된다.

         

        4. 대표 명령어

        명령어 기능
        LPUSH [Key] [Value] 리스트의 가장 왼쪽에 새로운 값을 추가
        RPUSH [Key] [Value] 리스트의 가장 오른쪽에 새로운 값을 추가
        LPOP [Key] 리스트의 가장 왼쪽에서 값을 삭제하고 반환
        RPOP [Key] 리스트의 가장 오른쪽에서 값을 삭제하고 반환
        LLEN [Key] 리스트의 값의 총 갯수 반환
        LRANGE [Key] [Start Indx] [End Indx] 리스트의 인덱스 범위로 값을 조회
        인덱스 값 0 은 가장 왼쪽을 뜻한다.
        인덱스 값 -1 은 가장 오른쪽을 뜻한다.

        http://redisgate.kr/redis/command/lists.php

         

        알아두면 좋은 팁>

        동일한 방향에서 Push/Pop 을 하면 Stack

        서로 다른 방향에서 Push/Pop 을 하면 Queue

         

         

        5. 예제

        work:queue:ids 라는 Key 에

        서로 다른 방향의 Push/Pop 을 이용하여 Value(Lists 자료구조)를 Queue 로 이용하고 있다.

         

        work:queue:ids 라는 Key 에

        같은 방향의 Push/Pop 을 이용하여 Value(Lists 자료구조)를 Stack 으로 이용하고 있다.

        https://redis.io/docs/data-types/lists/

        반응형

        'DataBase > NoSQL' 카테고리의 다른 글

        Redis Data Type 3  (0) 2023.06.02
        Redis Data Type 2  (1) 2023.06.02
        Redis 시작해보기  (0) 2023.06.01
        MongoDB Sharded Cluster  (0) 2023.06.01
        MongoDB Replica Set  (0) 2023.05.20
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바