[간단정리] Redis(레디스)란?

2022. 7. 7. 19:41·개발메모/간단정리

개요

Redis(레디스) 간단하게 알아보기


Redis

Redis(레디스)는 REmote DIctionary Server의 약자로 오픈소스(BSD licensed) DBMS입니다.
In-memory(인메모리) 데이터 저장소이며, Key-Value기반의 NoSQL DBMS입니다.
보통 DB, Cache(캐시), 메시지 브로커 등의 용도로 사용합니다.

 

For instance, using pipelining Redis running on an average Linux system can deliver even 1 million requests per second.

 

초당 10만 ~ 15만건의 명령을 수행할 수 있으며, 위 공식문서의 내용처럼 파이프링을 통해
리눅스시스템에서 초당 100만건의 요청도 수행이 가능하다고 합니다.


Redis 사용 목적

Redis 사용 목적 관련하여, 좋은 포스팅이 있어 아래 링크로 설명 대체합니다.

https://brunch.co.kr/@jehovah/20

 

Redis 기본 정리

캐시를 알아야 하는 순간! | 캐시를 접하게 되는 순간 서비스를 처음 운영할 때는 WEB-WAS-DB의 전형적인 3티어 구조를 취하는 편이 보통입니다. 사용자가 몇 명 되지 않는 서비스의 경우에는 3티어

brunch.co.kr


Redis 특징

영속성을 지원하는 In-memory(인메모리) 데이터 저장소

* 영속성(persistence): 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미


읽기 성능 증대를 위한 서버 측 복제를 지원한다.
(Redis가 실행중인 서버가 충돌하는 경우 장애 조치 처리와 함께 더 높은 읽기 성능을 지원하기 위해 슬레이브가 마스터에 연결하고 전체 데이터베이스의 초기 복사본을 받는 마스터 / 슬레이브 복제를 지원한다. 마스터에서 쓰기가 수행되면 슬레이브 데이터 세트를 실시간으로 업데이트하기 위해 연결된 모든 슬레이브로 전송된다.)


쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding)을 지원한다.

* 샤딩(Sharding): 파티셔닝(Partitionong)과 동일하다. 같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방법을 의미한다.


Redis 장점

리스트, 배열과 같은 데이터를 처리하는데 유용하다.
value 값으로 String, 리스트, Set, Sorted set, Hash 등 여러 데이터 형식을 지원하기에, 다양한 방식으로 데이터를 활용할 수 있다.

리스트형 데이터 입력과 삭제가 MySQL에 비해서 10배정도 빠르다고 한다.
여러 프로세스에서 동시에 같은 key에 대한 갱신을 요청할 경우, Atomic 처리로 데이터 부정합 방지 Atomic처리 함수를 제공한다.(원자성을 잘 지킨다)

메모리를 활용하면서 영속적인 데이터 보존
명령어로 명시적으로 삭제, expires를 설정하지 않으면 데이터가 삭제되지 않는다.
스냅샷(기억장치) 기능을 제공하여 메모리의 내용을 *.rdb 파일로 저장하여 해당 시점으로 복구할 수 있다.

Redis Server는 1개의 싱글 쓰레드로 수행된다.
따라서 서버 하나에 여러개의 서버를 띄우는 것이 가능하다.
Master — Slave 형식으로 구성이 가능함, 데이터 분실 위험을 없애주는 것이 바로 Master — Slave 방식이다.


Redis 자료형

문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원한다.
저장소 : in memory storage
저장방식 : key-value
데이터 타입 : String, Set, Sorted Set, Hash, List
데이터 저장 : Memory, Disk
메모리 재사용 : 메모리 재사용 하지 않음
스레드 : 싱글 스레드
캐싱 용량 : key&value 모두 512MB

  • String
    value에 문자,숫자 등을 저장한다
    저장시 별도로 형이 없다.
    숫자도 저장 가능하다. 그리고 숫자에 incr, incrby, decr, decrby 같은 atomic counter연산이 가능하다.
  • List
    value에 list를 저장한다.
    lrange: 값을 조회 이때 -1은 모두 가져오라는 뜻
    ex) lrange test_lists 0 -1
  • Sets
    value를 set형태로 가지고 있음
    list는 중복이 되나 set은 중복이 안된다.
  • Hashes
    Hashs key/value 목록을 값으로 가진다.
  • Sorted sets
    value를 set 형태로 가지고 있으며, set처럼 중복은 안된다.
    score와 함께 저장되며 score를 기준으로 정렬된다.
    정렬이 가능하다는 장점이 있따.
  • Bitmaps
    bit값을 저장하며, boolean 옵션값을 저장하는 용도로 사용

'개발메모 > 간단정리' 카테고리의 다른 글

[간단정리] JAVA - Checked Exception vs Unchecked Exception  (0) 2022.08.11
[간단정리] DB 클러스터링, 리플리케이션이란?  (0) 2022.07.19
[간단정리] ELK? ELK Stack이란?  (0) 2022.07.05
[간단정리] GraphQL이란? (REST api와 차이점)  (3) 2022.07.04
[간단정리] HTTP Request/Response 구조  (3) 2022.06.25
'개발메모/간단정리' 카테고리의 다른 글
  • [간단정리] JAVA - Checked Exception vs Unchecked Exception
  • [간단정리] DB 클러스터링, 리플리케이션이란?
  • [간단정리] ELK? ELK Stack이란?
  • [간단정리] GraphQL이란? (REST api와 차이점)
99CORN
99CORN
1990.09.17
  • 99CORN
    넌 잘하고 있어
    99CORN
  • 전체
    오늘
    어제
    • -
      • IT
        • 잔기술
        • 네트워크
        • 면접 예상 질문
      • JAVA
        • 알고리즘
        • 기타
      • PHP
        • 기초
      • C#
        • 기초
      • 개발메모
        • 간단정리
        • WEB
        • 면접준비
        • 기타
      • 블랙홀
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • forl
  • 공지사항

  • 인기 글

  • 태그

    웹개발
    JsonVue
    선택정렬
    springboot + graphql
    알고리즘
    문자열 대표 클래스
    Algorithm
    격리수준
    web
    php
    c#
    stack
    JDK Dynamic Proxy
    vParam
    sort
    https status code
    SERVER 환경변수
    docker
    자바
    기본문법 정리
    http 상태
    캐시스탬피드
    Queue
    Java
    console.table()
    JavaScript
    php 배열관련 함수
    OpenFeign
    graphQL
    HTTP
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
99CORN
[간단정리] Redis(레디스)란?
상단으로

티스토리툴바