본문 바로가기
SSAFY

Redis가 뭐야??

by KDW999 2024. 4. 13.

안녕하세요. 

언제 추웠냐는 듯 요샌 더워지기 시작하네요

오늘은  Redis 데이터베이스에 대해 간단히 소개해드릴 건데

SSAFY 2학기 프로젝트에서 토큰 저장 공간으로 사용하는 팀들도 있어서 알고 계시면 나쁠 건 없습니다. 🤠

 

 

🟦 Redis

Redis는 데이터베이스, 캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 키/값 기반의 인 메모리 데이터 구조 저장소 입니다.

 

MySql이나 PostgreSQL 등 여러 데이터베이스는 디스크 공간에 데이터를 저장하지만 Redis는 주 메모리에 데이터를 저장합니다. 데이터 조회를 위해 디스크를 왕복하는 다른 데이터베이스와 달리 Redis는 인 메모리 저장소를 사용하는 만큼 응답 시간이 빠르며 key-value 기반이라 저장소에서도 데이터를 신속히 찾을 수 있습니다.

 

🟩 데이터 처리 방식

Redis는 메모리 기반으로 작동하며, 매우 빠른 읽기 및 쓰기 속도를 제공합니다.

주로 캐싱, 세션 관리, 메시지 브로커 등의 용도로 사용되며, 기본적으로 디스크에도 데이터를 지속적으로 저장할 수 있습니다.

 

🟪 데이터 구조

Redis에서는 여러 가지의 데이터 구조도 제공합니다.

String, Hashes, Lists, Sorted sets, Sets, Bitmaps, HyperLogLogs와 같은 데이터 구조들을 제공하는데 사용하고자 하는 용도에 맞게 데이터를 저장 및 활용하시면 됩니다.

 

🟨 용도

Redis는 주로 높은 처리량과 낮은 대기 시간을 요구하는 애플리케이션에서 사용됩니다. 주로 캐싱, 세션 관리, 대기열 처리, 실시간 분석 등에 사용됩니다.

 

🟧 데이터 지속성

MySQL은 기본적으로 디스크에 데이터를 지속적으로 저장하므로 시스템 재시작 후에도 데이터가 유지됩니다.

 

Redis는 기본적으로 메모리에 데이터를 저장하므로 시스템 재시작 시 데이터가 손실될 수 있습니다. 그러나 스냅샷 및 로그를 사용하여 데이터를 주기적으로 디스크에 저장하고 복구할 수 있습니다.

 

ETC

저희 팀 같은 경우 많은 데이터들을 관리하는 용도로는 MySQL을 사용하였으며, 사용자가 API를 사용하기 위한 검증을 거치는 토큰은 빠른 조회를 위해 Redis에 저장하여 사용하였습니다.

SSAFY에서 팀 프로젝트를 하시게 되면 꼭 MySQL이 아니더라도 팀원 간 소통을 통해 사용할 데이터베이스를 선택하실텐데 사용해보고 싶거나 프로젝트에 적합한 데이터베이스를 용도에 맞게 사용해보시면 좋을 것 같습니다. 😄 

 

Ref

https://redis.io/docs/about/

https://msyu1207.tistory.com/entry/Redis-PubSub

https://upcurvewave.tistory.com/354

 

댓글