REDIS

정희준·2023년 5월 7일
0
post-custom-banner

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
같이 일하고 싶은 사람이 되어보자! 다시 시작하는 개발 블로그.
post-custom-banner

0개의 댓글