Redis와 Cache

2025. 1. 9. 21:14· Database/Redis
목차
  1. 캐시란?
  2. 레디스란?
  3. 그럼 레디스는 캐시인가?
반응형

 

요즘 보통 캐시라는 기술이 곧 레디스다 라고 불릴만큼 레디스는 캐시로 많이 사용되는데요,

레디스가 어떤 기술이길래 캐시로 사용되는지 레디스의 또 다른 강점은 무엇인지 알아보고자 합니다.

 

캐시란?

 

우선 캐시라는 것이 무엇인지 알아볼텐데, 캐시의 정의는 데이터를 빠르게 접근할 수 있도록 임시로 저장하는 고속 저장소를 의미하고 빠르게라는 모호한 의미를 조금 더 정확하게 표현하면 원격 디스크 저장소(데이터베이스 등)에 저장되어 있는 데이터에 접근하는 비용과 시간을 절약하기 위해 메모리(RAM)에 데이터를 저장하여 빠르게 접근하는 기술입니다.

 

캐시는 정말 다양하게 활용되지만, 대중적으로 사용되는 대표적인 사례는 자주 사용되는 데이터(상품 조회 같은)를 캐시에 올려두고 접근하여 사용자 경험을 향상시키는 사례가 있습니다.

 

캐시는 앞서 얘기했듯이 자주 사용되는 데이터를 조회하여 데이터를 조회할 때 이점을 가지는 장점이 있지만, 반대로 자주 사용하지 않는 데이터를 올리게 되면 데이터 낭비로 이어지게 되는 양날의 검 특징을 가지고 있습니다.

 

[캐시 사용 예시]

 

레디스란?

 

레디스는 인메모리 기반의 데이터 저장소로, 다양한 데이터 구조를 지원하여 개발자들에게 많은 사랑을 받고 있는 기술입니다.

 

레디스의 특징으로는 캐싱, 데이터베이스, 메시지 브로커가 있는데요, 

 

첫 번째로 캐싱으로의 특징은 레디스의 구조가 인메모리라는 기술적 특징을 지니기 때문에 디스크 저장소보다 빠른 데이터 접근이 가능하기 때문이죠.

그러면, 모든 저장소를 인메모리로 만들면 되지 않을까?라는 생각을 했었는데, 다음과 같은 특징 때문에 한계가 있습니다.

  • 비휘발성 메모리(SSD, HDD)보다 비용이 비싸다.
  • 메모리의 확장은 곧 하드웨어의 확장으로 이어지기 때문에 하드웨어의 비용이 증가한다.

 

두 번째로는 레디스가 인메모리 기반인 휘발성 특징을 가지고 있는데도 아이러니하게 레디스 서버의 디스크에 스냅샷 형태로 저장하거나 AOF(명령 로그)를 통해 데이터를 영구 저장할 수 있는 특징을 가지고 있습니다.

 

세 번째로는 메시지 브로커의 특징을 가지는데요, 메시지 브로커란 Queue 시스템과 비슷하게 비동기적으로 메시지를 주고받을 수 있는 PUB/SUB 기능을 의미합니다.

 

이외에도 레디스는 여러 대의 서버를 연결하여 Cluster 구조를 구성할 수도 있고, 랭킹 시스템 구축을 지원하는 기능도 제공해주는 등 다양하게 사용될 수 있습니다.

 

그럼 레디스는 캐시인가?

 

이전의 레디스에서 지원해주는 다양한 특징들을 통해 알 수 있듯이, 레디스에서 캐시란 레디스의 특징중 하나입니다. 레디스는 캐시로도 사용될 수 있지만 레디스 하나로도 서비스 구성을 위한 대부분의 시스템 구축이 가능할 수 있죠.

 

레디스를 보통 캐시로도 많이 사용하기도 하고, 이전에는 PUB/SUB으로도 사용했었던 만큼 단순히 "레디스는 캐시다"라는 생각을 가졌었던 지난 얄팍했던 지식을 가졌던 과거를 반성하기 위해 오늘의 포스팅을 진행해봤습니다.

 

 

반응형
LIST
  1. 캐시란?
  2. 레디스란?
  3. 그럼 레디스는 캐시인가?
iron_jin
iron_jin
배운 것에 대한 내 생각을 가지고 정리하자
學而不思則罔(학이불사즉망)배운 것에 대한 내 생각을 가지고 정리하자
iron_jin
學而不思則罔(학이불사즉망)
iron_jin
전체
오늘
어제
  • 전체 (163)
    • 도서 (10)
    • 생각 정리 (0)
    • 후기 모음 (14)
    • 언어 (20)
      • css (1)
      • java (9)
      • Kotlin (0)
      • javascript (0)
      • Solidity (3)
      • Python (3)
      • GO (3)
      • C++ (1)
    • Spring Framework (32)
      • spring (16)
      • JPA (6)
      • Error (4)
      • Settings (4)
    • 알고리즘 (62)
      • 이론 (0)
      • 연습문제 (58)
    • 인프라 (6)
      • 클라우드 (1)
      • 도커 (0)
      • AWS (4)
      • Elastic Search (0)
    • 쿠버네티스 (3)
      • 이론 (0)
      • 실습 (2)
      • 트러블슈팅 (1)
    • Nginx (2)
    • CS (4)
      • 서버 (0)
      • 리눅스 (2)
      • 네트워크 (0)
      • OAuth (2)
    • 형상관리 (3)
      • GIT (3)
    • Open API (3)
      • 카카오 API (1)
      • QGIS (2)
    • 보안 (0)
      • 알고리즘 (0)
    • 공통 (1)
      • 성능 관리 도구 (1)
    • Database (2)
      • MySQL (1)
      • Redis (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 2020 카카오
  • 알고리즘
  • 에릭 에반스
  • 항해플러스
  • 2019 kakao
  • spring
  • 스프링
  • 2020 카카오 블라인드
  • Java
  • 2019 카카오
  • SpringBoot
  • 2018 kakao
  • 자바
  • 2018 카카오 블라인드
  • 스프링 부트
  • 코딩테스트
  • 프로그래머스
  • AWS
  • spring boot
  • Python
  • 도메인 주도 개발
  • ddd
  • MySQL
  • 백준
  • 2020 kakao
  • 항해99
  • 카카오 겨울 인턴십
  • JPA
  • 2019 카카오 블라인드
  • Hibernate

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
iron_jin
Redis와 Cache
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.