ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redis 1 - Redis란? Redis VS Memcached
    Redis 2021. 4. 6. 17:56

    본 포스팅은 Redis에 대해 알아보고, Spring Boot 프로젝트에 적용해 활용해보는 목적으로 작성되었습니다.

    레디스 소개

    https://redis.io/

    Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈소스인 In Memory NoSQL입니다.


    레디스의 특징

    • 오픈소스 소프트웨어
    • 싱글 스레드 기반으로 동작
    • NoSQL & Cache 솔루션, 메모리 기반의 데이터 저장소
    • 분산 서버 구성 가능
    • 고 가용성, 고 기능성
    • Key - Value 방식으로 동작
    • Value 값으로 자료구조를 지원한다 ( String, List, Set, Hash 등 )

    레디스의 장점

    • 다양한 데이터 형식 지원
    • 고 가용성과 빠른 속도
    • 유연한 데이터 저장

    레디스의 단점

    • Sigle Thread로 동작 하나의 명령어만 실행할 수 있지만 속도가 빨라 크게 문제되지 않는다. 하지만 데이터가 많을 때 처리시간이 긴 명령어 ( keys * )를 앞, 중간에 배치하면 뒤에 배치된 명령어가 timeout으로 실패할 수 있다.
    • 메모리 사용량의 증가 Copy - On - Write 방식으로 동작하고, 쓰기 작업을 시작할 때 수정할 메모리 페이지를 복사한 후에 쓰기 작업을 진행하기 때문에 추가적인 메모리 공간이 필요하다.

    다른 NOSQL과의 비교

    비교 대상은 Redis와 비슷한 Key-Value 타입인 Memcached로 특징과 차이점을 알아보겠습니다.

    https://memcached.org/

    MemChached 특징

    • Key-Value 방식
    • 캐시 솔루션
    • 메모리에만 데이터를 저장해 복구가 불가능
    • String만 사용 가능
    • 멀티 스레드로 동작

    Redis VS Memcached

    1. 솔루션의 차이
      Redis ⇒ NOSQL & Cache 솔루션
      Memcached ⇒ Cache 솔루션
    2. 데이터의 저장과 복구
      Redis ⇒ 저장, 데이터의 유지로 데이터 복구 가능
      Memcached ⇒ 데이터 복구 불가능
    3. 데이터 타입의 차이
      Redis ⇒ List, Set, Hash 등 지원
      Memcached ⇒ String

    상황에 따른 선택

    • MemCached
    1. 메모리가 삭제되어도 원본 데이터로 복구가 가능하며 장애가 발생하지 않는 경우
    2. 단순 조회로 통신 속도만을 향상시키는 목적인 경우
    • Redis
    1. 메모리가 삭제되었을 때 서비스 장애가 발생할 수 있는 경우
    2. 서비스의 특정 기능을 위한 목적으로 사용하는 경우 ( 다양한 데이터 타입을 활용해서 사용할 때 등 )

    댓글

Designed by Tistory.