Redis?? 뭔데??

0
post-thumbnail

1. Redis

  • Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원한다.
  • Redis는 모든 데이터를 메모리에 저장하고 조회 한다. 즉, 인메모리 데이터베이스이다.
  • 다른 인메모리 데이터베이스와 가장 큰 차이점은 Redis의 다양한 자료구조이다.

2. 특징

  • Redis는 다양한 자료구조를 가지면서 개발의 편의성이 좋아지고 난이도가 낮아진다는 장점이 있다.
    예를 들면, 어떤 데이터를 정렬 할 때, DBMS를 이용한다면 DB에 데이터를 저장하고, 저장된 데이터를 정렬하여 다시 읽어오는 과정은 디스크에 직접 접근을 해야하기 때문에 시간이 더 걸린다는 단점이 있다. 하지만 이때 In-memory 데이터베이스인 Redis를 이용하고 레디스에서 제공하는 Sorted-Set이라는 자료구조를 사용하면 더 빠르고 간단하게 데이터를 정렬할 수 있다.

  • NoSQL로서 특징
    1. 영속성을 지원하는 인메모리 데이터 저장소
    1. 읽기 성능 증대를 위한 서버 측 복제 지원
    2. 쓰기 성능 증대를 위한 클라이언트 측 샤딩(Sharding) 지원
    3. 다양한 서비스에서 사용되며 검증된 기술
    4. 문자열, 리스트, 해시, 셋, 정렬된 셋과 같은 다양한 데이터형을 지원, 메모리 저장소임에도 불구하고 많은 데이터를 지원하므로 다양한 기능을 구현
  • 요약하자면, 고성능 키-값 저장소로서 문자열, 리스트, 해시, 셋, 정렬된 셋 형식의 데이터를 지원하는 NoSQL이다.

3. 패턴

  • Write-Back 패턴: 한번에 데이터가 들어가면, 컴퓨터는 정신을 못차린다. 그래서 Redis를 통해서 빠르게 저장한 후, Redis에서 MySQL로 한개씩 저장한다.

  • Cache-Aside패턴: 위의 사진을 보면 알 수 있듯이 간단히 말하자면, 처음 검색을 할때 redis에 데이터가 없으면 MySQL DB에서 꺼내오고 그 다음 검색부터는 더 빠르게 찾을 수 있게 그 데이터를 redis에 저장하여 검색 속도가 빠르게 해준다.

4. 설치

  • redis를 사용하기 위해 설치를 위한 명령어들
    1. yarn add redis
    1. yarn add cache-manager-redis-store
    2. yarn add cache-manager

5. 도커로 redis 접속을 위한 명령어, 데이터 불러오는 명령어

  • expire: 만료시간
  • ttl : 시간 설정

마무리

=> 공부를 할수록 어려운 개념도 많이 나오고, 이해하기도 어렵다.....항상 듣지만 조금만 더 쉽게 생각해보자

profile
끝날때 까지 끝난게 아니야. 결국 내가 이겨!

0개의 댓글