• 티스토리 홈
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 시작해보기
        2023년 06월 01일
        • starryeye
        • 작성자
        • 2023.06.01.:30
        반응형

        Redis 는 가장 대표적인 NoSQL 의 Key-Value 모델을 따르는 저장소이다.

        -> Hash Map 이라 생각해보자..

         

        간단하게 알아보는 대표적 특징

        1. In-memory 저장소로 아주 빠른 접근 속도를 제공한다.

         

        2. 세션 관리나 캐시 등의 목적으로 자주 사용된다.

         

        3. Key-Value Store 이므로, 분산 환경을 제공하여 데이터 관점의 Shard(Cluster, Scale-Out) 가 가능하다.

        (물론, HA를 위한 Replica, Sentinel 개념도 존재)

         

        4. Key 를 통해서만 값을 읽을 수 있다. (Value 단독 조회 불가능)

         

        5. 범위 조회 등의 복잡한 질의 불가능

         

        6. In-Memory 데이터를 주기적으로 디스크에 스냅샷으로 저장(RDB)하거나,

        모든 변경을 로그 파일에 기록(AOF)하여 데이터 손실을 어느정도 방지할 수 있다.

         

        정의

        Remote Dictionary Server 의 약자가 Redis 이다.

        -> 원격지에 Dictionary 방식으로 저장하는 서버

         

        성격

        1. Storage : 데이터 관점의 외부 저장소이다.

        2. Database : NoSQL Database 이다, 데이터를 다루는 인터페이스를 제공하므로 DBMS 느낌이다.

        3. Middleware : Application 이 이용할 수 있는 유용한 기능을 제공한다.

        -> ex. Sorted Set Data Type 을 이용하면 빠른 조회가 가능한 랭킹 서비스를 쉽게 개발할 수 있다.

         

        Redis 로 가능한 것들..

        1. 메모리 저장소, 아주 빠른 데이터 저장소 (캐싱, 세션 저장소 등)

        2. 분산된 서버들간의 커뮤니케이션 (kafka 에서 제공하는 pub/sub, stream 기능도 존재)

        3. 내장된 자료구조를 활용하여 기능 구현 (Java Collection 이 외부 저장소로 존재하는 느낌이다.)

        4. Redisson Client 를 사용한, 분산 락 (Redis 가 제공하는 Lua 스크립팅을 이용하여 락의 획득과 해제를 원자적으로 처리 가능)

         

        참고>

        Lua 스크립팅

        Redis에서 Lua 스크립팅은 서버 측 로직을 정의하고 실행할 수 있게 해주는 기능이다.
        Lua 스크립트는 Redis 명령들의 시퀀스를 포함하여 클라이언트가 서버에 전송하고,

        Redis 서버는 해당 스크립트를 "한 번에" 실행한다.

        따라서 "원자적"으로 실행되므로,

        스크립트가 실행되는 동안 다른 클라이언트의 요청이 스크립트의 실행을 방해할 수 없다.

         

         

        반응형

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

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

        티스토리툴바