REDIS

정희준·2023년 5월 7일

REDIS란?

Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원하고 있습니다. 

레디스는 모든 데이터를 메모리에 저장하고 조회합니다. 즉, 인메모리 데이터베이스 입니다.

이 말만 들으면 Redis에 모든 데이터를 메모리에 저장하는 빠른 DB일 뿐이라고 생각할지도 모릅니다. 하지만 빠른 성능은 레디스의 특징 중 일부분 입니다.

다른 인메모리 디비들과의 가장 큰 차이점은 레디스의 다양한 자료구조 입니다.

이렇게 다양한 자료구조를 지원하게 되면 개발의 편의성이 좋아지고 난이도가 낮아진다는 장점이 있습니다.

예를 들어, 어떤 데이터를 정렬 할 때, DBMS를 이용한다면 DB에 데이터를 저장하고, 저장된 데이터를 정렬하여 다시 읽어오는 과정은 디스크에 직접 접근을 해야하기 때문에 시간이 더 걸린다는 단점이 있습니다.

하지만 이 때 In-Memory 데이터베이스인 Redis를 이용하고 레디스에서 제공하는 Sorted-Set이라는 자료구조를 사용하면 더 빠르고 간단하게 데이터를 정렬할 수 있습니다.

NoSQL로서 Key-Value 타입의 저장소인 레디스(Redis, Remote Dictionary Server)의 주요 특징은 아래와 같습니다.

  • 영속성을 지원하는 인메모리 데이터 저장소
  • 읽기 성능 증대를 위한 서버 측 복제를 지원
  • 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding) 지원
  • 다양한 서비스에서 사용되며 검증된 기술
  • 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원. 메모리 저장소임에도 불구하고 많은 데이터형을 지원하므로 다양한 기능을 구현

그래서 최종적으로 Redis를 한 문장으로 정의하면 아래와 같습니다.

레디스는 고성능 키-값 저장소로서 Stirng , list, hash, set, sorted set형식의 데이터를 지원하는 NoSQL입니다.


Redis 패턴

Redis에서 자주 사용되는 Cache-Aside패턴과 Write-Back패턴에 대해 알아보겠습니다.

  • Cache-Aside 패턴(빠른검색용)
    • 검색 시 Redis에서 먼저 찾아보고 Redis에 저장된 내용이 있다면 저장된 정보를 바로 보여주고
      없다면 MySQL에서 정보를 보여준 다음 검색된 내용을 redis에 저장
      하는 방식
    • Cache-Aside패턴를 사용한다면 같은 내용의 2번째 검색부터는 redis에 저장된 정보를 보여주기 때문에 속도가 빨라집니다.

  • Write-Back 패턴(임시저장용)
    • redis에 먼저 임시 저장해놓은 뒤 Database에 저장하는 방식
    • 디스크 기반의 Database에 저장해야할 데이터 양이 많은 경우 디스크I/O(속도가 느린 현상)가
      발생하게 되는데 이를 해결하기 위해 Write-Back 패턴을 사용합니다.

참조

https://codebootcamp.co.kr/

profile
같이 일하고 싶은 사람이 되어보자! 다시 시작하는 개발 블로그.

0개의 댓글