[Server] 전세계에서 가장 유명한 캐싱 솔루션, Redis

오늘은 전세계에서 가장 유명한 캐싱 솔루션인 Redis에 대해 알아보는 시간을 가지고자 한다.

Redis

오픈소스 인 메모리 데이터 구조 저장소로서 in memory DB, 캐시, 메시지 브로커로 역할을 수행한다.
전세계에서 가장 유명한 캐싱 솔루션이기도 하다.

  • support data structure
    • String, hash, list, sets, sorted sets(정렬이 되는 집합), bitmaps, streams 등을 지원한다.
  • cache의 정의
    • 나중에 요청된 결과를 미리 저장해뒀다가 빠르게 쓰기 위한 임시 데이터 저장소
    • 캐시에 접근 하는 것이 원본에 접근 하는 것보다 빨라야 함
    • 데이터의 재사용 횟수가 한 번 이상이어야 캐쉬가 의미 있음
  • Redis의 경우는 자료구조가 Atomic하다.
    • Atomic Operatio이 필요한 부분은 멀티스레드 프로그램에서 공유 자원들에 대해 여러 스레드가 서로 동시에 액세스하는 상태(race condition)을 막기 위한 하나의 방법.
    • 쉽게 말해 동기화를 위한 하나의 방법임
  • Redis as a cache
    • 단순한 key-value 구조
  • 캐싱 전략

  • 읽기전략 - lazy loading(Look-Aside): Redis에 찾는 데이터가 없으면 DB에서 조회해 온 뒤 Redis에 저장해야 한다.

Redis 사용처

  • Remote Data Store
    • 여러대의 서버에서 같은 데이터를 쓰고싶을 때 보통 사용함
  • 인증 토큰을 저장 시 주로 많이 사용

참고

  • [[NHN FORWARD 2021] Redis 야무지게 사용하기https://www.youtube.com/watch?v=92NizoBL4uA)