Redis

Seunghyeon·2024년 1월 23일
0

Redis

목록 보기
1/1
post-thumbnail

캐시 메모리

프로세스가 동작할 때는 하드디스크에서 데이터를 가져와서 메인 메모리(RAM) 에 올려놓고 사용합니다.

메인 메모리가 하드디스크 보다 빠르기 때문에 올려두고 빠르게 접근하기 위함입니다.

그런데 여기서 CPU를 더 효율적으로 사용하기 위해 CPU가 접근하기 쉬운 공간을 하나 마련해둡니다.

그것을 캐시 메모리 라고 합니다.

자주 사용하는 데이터를 쌓아두고 있다가 필요하면 바로바로 꺼내주는 역할을 합니다.

캐시 메모리는 속도가 빠른만큼 가격이 비쌈 => 적은 용량을 효율적으로 사용해야 함




Redis (Remote Dictionary Server)

서버에서 1만명이 DB의 '싸피' 라는 데이터가 필요하다고 할 때

서버에서는 이 데이터를 꺼내 보여주기 위해 1만번의 조회가 발생합니다.

하지만 '싸피' 라는 데이터를 캐시 메모리에 올려놓는다면 한번의 DB 연결로 캐시 메모리에 '싸피'를 올려두고 빠르게 데이터를 제공할 수 있겠죠

이 역할을 하는것이 Redis 입니다.

Redis는

  1. In Memory 에 데이터를 저장하여
  2. 자주 사용하지만 변경되지 않는 데이터에게
  3. 빠르게 접근하기 위한 서버의 캐시메모리
    입니다.



Redis의 장단점

장점

  1. DB 접근을 줄여줄 수 있다.

  2. No-Sql로 Key: value 쌍으로 접근할 수 있다. (RDBMS 보다 빠르다고 함)

  3. 문법적으로 사용하기 쉽다.

단점

  1. DB에서 데이터를 직접 가져오는것이 아니기 때문에 DB와 다를 수 있다. 즉 자주 변경되는 데이터를 사용하면 데이터가 불일치 되는 경우가 발생할 수 있음

  2. 휘발성 메모리에 저장하기 때문에 서버를 끄면 데이터가 사라짐

사용처

  1. 일반적으로 사용자의 세션 관리
    • 사용자의 세션을 유지하고, 관리하고, 여러 활동들을 편리하게 추적할 수 있다고 합니다. Refresh 토큰을 발급한걸 가져오면 좋을 듯 합니다.
      토큰 관리 관련 블로그
  2. 메세지 큐잉
    • 속도가 매우 빨라서 실시간 채팅에 사용이 가능하다고 합니다. 대화 내용을 저장하지 않는 경우에 사용하기에 좋아보입니다.
      채팅 관련 블로그
profile
그냥 합니다.

0개의 댓글