Redis를 왜 사용하는가??

Jobmania·2022년 8월 19일
0

레디스

목록 보기
1/1


redis는 단어의 의미에서 보면 외부에 key-value를 저장하는 서버를 말한다. Redis는 인메모리 데이터 구조 저장소로, 데이터베이스, 캐시, 메시지 브로커로 사용한다고 말한다.

인메모리란 컴퓨터의 메인 메모리 RAM에 데이터를 올려서 사용하는 방법을 말한다. 왜 메모리에 데이터를 올릴까? 이유는 명확하게도 속도 때문이다.  SSD,HDD 같은 저장공간에서 데이터를 가져오는 것보다 RAM에 올려진 데이터를 가져오는데 걸리는 속도가 수백배(HDD 기준) 이상 빠르다. 때문에 Redis는 빠른 속도가 큰 장점이다. 하지만 edis는 빠른 속도를 자랑하는 대신 치명적인 단점이 있다. 바로 용량이다

즉 redis는 캐시 데이터베이스 서버, 인메모리 데이터 구조 저장소 (메시지 브로커)

여기서 캐시가 redis가 된다, look aside cache 기준으로
가장 먼저 캐시에 데이터가 있는지 확인하고,
데이터가 있으면 캐시 데이터 사용, 데이터가 없으면 실제 DB데이터 사용하고 DB데이터를 캐시에 저장
혹은 일정 기간동안 캐시에 저장하고, 저장된 데이터를 DB에 저장하는 write back도 있음

  • 사용자가 늘어남에 따라 'WEB-WAS-DB'의 3계층 구조를 사용하는 경우, DB에 부하가 가해지기 시작함 (느려짐)
    이 부하를 줄이기 위해 한 번 읽어온 데이터를 저장하고, 다시 요청하는 경우 빠르게 결과 값을 받을 수 있도록 함 (캐싱)

캐시 데이터베이스 서버

cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다. 캐시에 있는 데이터는 시간과 자원 면에서 최소한의 비용으로 반복적으로 접근

Local Cashe vs Global Cashe
1. Local 장비 내에서만 사용 되는 캐시
2. 여러 서버에서 Cache Server에 접근하여 사용하는 캐시

redis는 Global Cache에 적합함

Redis 는 key-value 형태의 데이터를 저장소이다. 즉, key 하나당 value를 저장하는 형태이다. redis는 단순히 string뿐만 아니라 다음과 같은 다양한 종료의 데이터 구조를 지원한다. 

문자열(string)
해시(hashes)
리스트(list)
집합(sets)
정렬된 집합(sorted sets)
비트맵(bitmap)
하이퍼로그 로그(hyperloglog)
지리공간 인덱스(geospatial indexes)
스트림(streams)

활용 사례

  • 최근 검색 목록
  • 유저 인증 토큰
  • 랭킹 보드

단점, 주의사항

  • 인 메모리 방식이기 때문에 장애 발생시 데이터 유실 발생
  • 싱글 스레드이기 때문에, 1번에 1개의 명령어만 실행할 수 있어
  • 한 서비스 요청건을 처리하기 전까지 다른 서비스 요청을 받아들일 수 없다. 그래서 저장된 모든 키를 보여주는 명령어나, 모든 데이터를 소거하는 명령어와 같이 실행 대상을 전수처리 해야하는 경우 속도가 느려질 가능성이 크다. 또한, RDB 기능을 사용하는 경우 장애가 발생할 요인이 많아 주의 필요

레디스 캐싱 전략, 읽기 및 쓰기
https://crazy-horse.tistory.com/139

출처 :
https://yong0810.tistory.com/52
https://zangzangs.tistory.com/72
https://brunch.co.kr/@skykamja24/575
https://yjam.tistory.com/50

profile
HelloWorld에서 RealWorld로

0개의 댓글