Redis

김지우·2022년 12월 16일
0

6주차

목록 보기
3/6
post-thumbnail

Redis

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

1️⃣ Redis 기능

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

이러한 특징 덕분에 레디스는 빠른 성능을 자랑하며, 또 다른 차이점은 다른 인메모리 DB들과는 다르게 다양한 자료구조를 지원합니다.


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

💡 예시)

레디스 : DB에 데이터를 Sorted-Set 구조로 저장

다른 DBMS : DB에 데이터 저장 => 저장된 데이터 정렬 => 다시 데이터 읽어옴


2️⃣ Redis 특징

Redis는 NoSQL로서 Key-Value 타입의 저장소입니다.

  • 영속성을 지원하는 인메모리 데이터 저장소입니다.

  • 읽기 성능 증대를 위한 서버 측 복제를 지원합니다.

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

  • 다양한 서비스에서 사용되며 검증된 기술을 가지고 있습니다.

  • Stirng , list, hash, set, sorted set과 같은 다양한 데이터형을 지원. 메모리 저장소임에도 불구하고 많은 데이터형을 지원하므로 다양한 기능을 구현할 수 있습니다.


3️⃣ Redis 패턴

Cache-Aside패턴
Write-Back패턴

  • Cache-Aside 패턴(빠른검색용)
    검색 시 Redis에서 먼저 찾아보고 Redis에 저장된 내용이 있다면 저장된 정보를 바로 보여주고
    없다면 MySQL에서 정보를 보여준 다음 검색된 내용을 redis에 저장
    하는 방식을 말합니다.

    이후 같은 내용의 검색부터는 redis에 저장된 정보를 보여주기 때문에 속도가 빨라집니다.

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

    💡 예시) 사용자가 많은 게시글 페이지에서 1 ~ 10페이지의 데이터는 Redis에 저장하여, 앞 페이지의 데이터 검색 시간을 단축시킨다.

<출처> : 코드캠프

profile
백엔드 성장 기록

0개의 댓글