어 나 갱수.

[DB] Redis를 왜 사용할까 ?? 🥱 본문

DB

[DB] Redis를 왜 사용할까 ?? 🥱

김경수 2023. 11. 29. 20:49
728x90

 

로그인 API 개발을 하면서 RefreshToken을 저장하는 데이터베이스로 redis를 처음 접하게 됐습니다. 처음에는 redis가 뭔지도 모르고 사용하였지만 redis의 동작원리가 궁금해지고 어떤 데이터베이스 특징을 가지고 있는지 궁금해져서 이번 글에서는 redis에 대해 정리해보겠습니다.

 

In-Memory란

컴퓨터의 주기억장치인 RAM에 데이터를 저장해서 사용하는 방법. RAM에 데이터를 저장하게 되면 메모리 내부에서 처리가 되므로 데이터를 저장/조회할 때 하드디스크를 오고 가는 과정을 거치지 않아도 되어 속도가 빠름

그러나 서버의 메모리를 초과하는 경우 RAM의 휘발성에 따라 데이터가 유실될 수 도 있습니다.

Redis란 

Redis는 Remote Dictionary Server의 약자로 키(Key) - 값(Value)  쌍의 해시 맴과 같은 구조를 가진 비관계형(NoSQL) 데이터베이스 관리 시스템(DBMS)입니다. 데이터를 하드디스크나 SSD에 저장하지 않고 메모리에 저장하는 In-Memory DB입니다.

 

따라서 데이터를 저장할 때 별도의 쿼리문이 필요하지 않고, In-Memory에 저장되기 때문에 상당히 빠른 속도로 데이터를 처리할 수 있습니다.

 

Redis의 특징

1. 성능

모든 Redis 데이터는 디스크가 아닌 메모리에 저장되기 때문에 데이터를 읽는 속도 또한 매우 빠릅니다.

평균적으로 읽기 및 쓰기의 작업 속도가 1ms로 디스크 기반 데이터베이스보다 훨씬 빠릅니다.

 

2. 유연한 데이터 구조

Redis에는 다양한 데이터 타입을 지원합니다. String, List, Set, Hash, Sorted Set, Bitmap, JSON 등을 지원합니다.

 

3. 영속성

Redis는 영속성을 보장하기 위해 상황에 따라 디스크에 저장할 수 도 있습니다. 서버에서 문제가 발생하더라도 디스크에 저장된 데이터베이스를 통해 복구가 가능합니다.

 

Redis 사용하는 이유

DB를 디스크에 저장하게 된다면 서버에 문제가 생겨도 데이터가 손실되지 않는데 매번 데이터를 조회/저장하게 되면 동시 사용자가 많아질수록 부하가 많아져서 느려질 수 있어서 Redis를 사용하면 성능적으로 더 좋은 DB가 될 수 있다.

 

같은 요청이 여러 번 들어올 때 Redis를 사용함으로써 매번 디스크 DB를 거치지 않고 Reids 서버에 저장해 놨던 값을 바로 가져와 DB의 부하를 줄일 수 있고 서버의 속도도 느려지지 않게 할 수 있다.

 

Redis의 영속성

Redis는 영속성을 보장하기 위해 데이터를 디스크에 저장할 수 있다. 서버가 내려가더라도 디스크에 있는 데이터는 사라지지 않을 수 있다.

  • RDB 방식
    • 순간적으로 메모리에 있는 내용 전체를 디스크에 옮겨 담는 방식
  • AOF 방식
    • Redis의 모든 write/update 연산 자체를 모두 Log 파일에 기록하는 방식

사용 사례

  • 캐싱
  • 채팅, 메시징 및 대기열
  • 랭킹 보드
  • 인증 토큰 저장
  • 실시간 분석
728x90

'DB' 카테고리의 다른 글

[DB] 정규화란 ? 🐼  (1) 2024.02.04
[DB] 인덱스(Index)란? 😛  (1) 2024.01.31
[DB] DBCP 이란? 🫶  (0) 2024.01.28
[DB] 이상 현상이란 ??👍🏿  (0) 2024.01.25
[DateBase] Redis란? 🙏🏾  (0) 2023.09.28