Redis vs Mysql ( DataBase_4 )

송성원·2024년 1월 16일
1

Database

목록 보기
4/6
post-thumbnail
post-custom-banner

Redis vs Mysql

인메모리(Ram) vs 디스크(SSD/HDD)

우선 이 두가지의 선지식의 차이가 두가지의 차이이기에 알아보도록 하겠다.

인메모리

  • 우선 메모리(Ram)은 디스크보다 가격이 더 비싸다
  • 메모리의 특성 때문에 전력이 차단 되는 경우 데이터가 휘발되어 사라진다.
  • 디스크기반 데이터베이스에 비해 높은 I/O 성능을 가진다. 인메모리 데이터베이스의 경우 메모리에 쓰고•읽는 작업을 한다.

디스크

Redis (mysql는 전 블로그 참고)

  • nosql의 종류
  • 메모리 기반의 키-값(key-value) 저장소로서 빠른 데이터 액세스에 특화
  • 해시 함수와 해시 테이블을 사용해 키를 관리하기 때문에 상당히 빠른 탐색속도를 가지고 있다.

Redis & mysql 같이 사용하면 좋은 이유

  • 이부분이 제일 중요하다. 작년에 진행 했던 프로젝트에선 redis만 사용했고,
    다른 팀들은 둘다 사용한 팀도 존재했다.
  • 왜 같이 사용할까의 답은 chat-gpt를 통해서 알아보았다.
  1. 데이터베이스 역할 분리:
    MySQL은 복잡한 쿼리와 트랜잭션을 처리하는 데 강점이 있습니다. 관계형 데이터를 안정적으로 저장하고 검색하는 데 사용됩니다.
    Redis는 주로 메모리 내에서 빠르게 데이터를 읽고 쓰는 데 특화되어 있습니다. 주로 캐싱, 세션 관리, 메시지 브로커 등에 사용됩니다.

  2. 데이터베이스 성능 향상:
    Redis는 메모리에 데이터를 저장하므로 읽기 작업이 매우 빠릅니다. 프로젝트에서 자주 사용되는 데이터를 Redis에 캐시로 저장하면 데이터베이스 부하를 줄일 수 있습니다.

  3. 실시간 데이터 처리:
    Redis는 PUB/SUB 메커니즘을 통해 메시지 브로커로 활용할 수 있습니다. 이를 통해 실시간 이벤트 기반 아키텍처를 구성할 수 있습니다.

  4. 임시 데이터 저장:
    Redis는 데이터를 메모리에 저장하므로, 캐시나 임시 데이터 저장소로 사용하기에 적합합니다. 특히, 자주 변경되는 데이터나 빈번한 읽기 작업에 유용합니다.

  5. 프로젝트 확장성:
    MySQL과 Redis를 조합하여 사용하면, 각 데이터베이스의 강점을 살려 프로젝트의 확장성을 높일 수 있습니다. 예를 들어, MySQL은 데이터의 영구적인 보관에 적합하고, Redis는 빠른 읽기/쓰기 작업에 적합하므로 서로 보완적으로 사용할 수 있습니다.

  6. 비동기 작업 처리:
    Redis를 사용하면 메시지 브로커로서 비동기 작업을 효과적으로 처리할 수 있습니다. 이를 통해 프로젝트의 성능을 향상시키고 사용자 경험을 개선할 수 있습니다.

=> redis와 mysql을 같이 사용한다면 어떤 정보는 redis로 처리할지 mysql로 어떤 정보를 저장해서 읽을지를 판단하는 것도 중요하다고 봅니다.

profile
개발에 도전하는 문과생입니다.
post-custom-banner

0개의 댓글