본문 바로가기

항해99

캐싱과 레디스

반응형

1. 캐싱이란

  • 데이터의 원래 소스보다 더 빠르고 효율적으로 엑세스 할 수 있는 임시 데이터 저장소
    • 속도향상을 위해 사용
    • 원본보다 빠른 접근속도, 동일한 데이터 반복 엑세스
    • 데이터 재사용 횟수가 2회 이상 있어야 캐싱으로 의미를 갖는다
    • 잘 변하지 않는 데이터일수록 효율적이다

 

2. 레디스란(remote dictionary server)

  • 키-벨류 단순한 구조
  • 인메모리 저장소로 빠른 성능 (평균작업 속도 < 1ms)
  • 캐싱전략(읽기)
    • 데이터 유형과 엑세스 패턴 고려해야함
    • 읽는 작업이 많을때? look aside ⇒ 레디스 를 먼저 찾고 데이터 없으면 db에서 꺼내어 레디스에 탑재
      (뽀모모 서비스는 레디스 다운되면 데이터 가져올 수 없다.. db에 접근하는 코드 있어야)
    • db에서 레디스로 미리 데이터 밀어넣는것 ? cache Warming ⇒ 레디스에서 디비로 요청이 많아질 것을 대비해 미리 탑재 해놓는다(뽀모모 서비스는 노드크론으로 매월 1일 월간 랭킹 밀어넣는중)
  • 캐싱전략(쓰기)
    • write around ⇒ 캐시를 거치지 않고 db에 바로 저장
    • wirte_through ⇒ 캐시에 저장한 후 db에 저장 ⇒ 스텝이 늘어나 느릴 수 있다. 리소스 낭비 일 수 있다.
    • 익스파이어 타임을 설정해 데이터 날려 줄 수 있다.

3. 레디스 데이터 타입

  • key -
    • stirng
    • bitmaps(스트링의 변형)
    • list (큐로 사용)
    • hashes (하나의 키안에 여러개 필드와 벨류로 저장)
    • set(중복없는 문자열 집합)
    • sorted set (중복없는 문자열이며 스코어라는 값을 가지며 score순으로 정렬, 동점시 사전순)
    • 하이퍼로그로그스 (중복되지않는 데이터 값을 셀때)
    • 스트림 (로그 저장하는용)

 

 

(참고 : https://www.youtube.com/watch?v=92NizoBL4uA&t=401s
참고 : https://meetup.toast.com/posts/225)

반응형

'항해99' 카테고리의 다른 글

[항해99]수료와 앞으로의 계획, 이사  (0) 2022.02.09
자바스크립트 딥다이브 시작  (2) 2022.02.03
정규식 1  (3) 2022.01.20
mysql아 고맙다!  (1) 2022.01.15
코딩하는 꿈  (1) 2022.01.14