ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Redis
    Backend/DB 2022. 12. 19. 20:38

    지난번, 세션 vs 쿠키 vs 토큰 게시물에서 일반적으로 세션관리를 할 때엔 DB가 필요하고 유저가 늘어날수록

    그에 따른 비용이 증가한다. 이럴 때 사용하는 것이 빠르고 저렴한 Redis DB라고 한다. 

     

    가볍게 찾아봤을 땐, Redis는 일반적인 DB와 형태가 다른다고만 알고 있었는데 조금 더 구체적으로 알아보고자 한다.

     

    Redis를 4개의 키워드로 설명해보고자 한다. 

     

    1. Remote Dictionary Server

    Redis는 우리에게  친숙한 RDB 형태가 아닌 RDS 방식이다.

    RDS는 Remote Dictionary Server로 외부에 있는 Key-Value쌍으로 데이터를 저장하는 서버라는 것을 알 수 있다.

     

    이러한 Key-Value로 저장되는 형태 덕분에 별도 쿼리 없이도 데이터를 간단히 가져올 수 있다.

     

     

    2. Database, Cache

    cache란?

    나중의 요청에 대한 결과를 미리 저장했다가 빠르게 사용하는 것

    그렇다면 어디에 저장을 했다가 빠르게 사용하는 것일까?

     

    이에 따라 메모리 계층구조를 살펴보고자 한다. 

     

    위로 갈수록 빠르고 비싸며, 아래로 갈수록 크고 저렴하다.

     

    기본적으로 Database는 컴퓨터가 꺼지더라도 저장을 해야하기때문에 SSD(Disk)에 저장을 하지만기술이 발달하고 하드웨어가 커지다보니까 메인메모리에 저장해서 좀 더 빠르고 쉽게 저장하면 어떨까하는 개념으로 Redis가 등장했다.

     

    Redis는 하드디스크나 SSD에 데이터를 저장하지 않고 메모리에 저장했다가 같은 페이지의 요청이 있을때 메모리에 저장된 데이터를 빠르게 돌려준다.

    즉, 메모리는 하디디스크나 SSD같은 저장장치보다 훨씬더 빠르기 때문에 고속으로 컨텐츠를 제공할 수 있는 장점이 있고 웹서버의 부담을 획기적으로 줄이면서도 사용자들에게는 훨씬더 빠르게 데이터를 공급해줄 수 있다.

     

    Database보다 더 빠른 Memory에 더 자주 접근하고 덜 자주 바뀌는 데이터를 저장한다.실제로 모바일로  G마켓 앱을 접속하면 바로 보이는 첫 페이지는 레디스에서 데이터를 저장해 가지고 온다고 한다.

     

    3. In-Memory Data Structure Store

     

    일반적으로 mysql, oracle 등의 RDB들이 하드디스크에 데이터를 저장하고 관리하는 것과는 달리 레디스는 데이터를 주기억장치인 ram, 즉 In-memory에서 관리한다.

     

    데이터를 저장하고 조회할 때, 하드디스크를 오고 가는 과정을 거치지 않고 메모리 내부에서 처리가 되므로, 기존 RDB보다 훨씬 더 빠른 성능을 발휘할 수 있다. 즉 병목 현상이 발생하지 않는다.

     

    4. supports rich data structure

    Redis는 일반적으로 Memcached와 많이 비교가 되는데, 가장 큰 차이점은 colletion이라는 자료 구조를 제공하는 점에 있다.

     

     

     

    참고 : https://www.youtube.com/watch?v=Gimv7hroM8A&t=17s

Designed by Tistory.