[Redis] Redis vs RDB 장단점 알아보기

[Redis] Redis vs RDB 장단점 알아보기

배경

여러 데이터에 관한 읽기와 쓰기 작업이 빈번하게 일어나는 경우가 발생. 예를 들면 5초마다 센서 정보를 송신하는 디바이스가 존재. 이때 센서 정보를 RDB에 센서 테이블로 저장한다면 5초마다 해당 테이블의 조회 후 수정하는 SQL문을 실행해야함. 만약 센서 디바이스 개수가 늘어난다면 부하가 걸릴 가능성이 높아짐

이렇게 빈번한 RDB 조회 및 쓰기 작업을 진행하는 경우 성능에 문제가 발생할 수 있다고 생각했고, 이런 상황을 해결할 수 있는 방법을 알아보다 Redis라는 DB에 대해 알게됨

Redis란?

Redis(Remote Dictionary Server)는 오픈 소스의 인메모리 데이터 구조 스토어입니다. 주로 데이터베이스, 캐시 및 메시지 브로커로 사용되며, 다양한 데이터 유형을 지원하고 빠른 속도와 고성능을 제공합니다.

여기서 인메모리 데이터 구조란 데이터를 메모리(RAM)에 저장하는 구조라는 것을 의미합니다. 메모리를 이용하기에 기존 RDB보다 더 빠른 속도를 제공합니다.

Redis vs RDB

그럼 기존에 많이 사용되는 RDB와 Redis는 무슨 차이가 있을까요?

가장 큰 차이는 데이터가 저장되는 곳입니다. Redis는 인메모리 데이터 구조로 데이터를 메모리(RAM)에 저장하지만, RDB는 데이터를 디스크(Disk)에 저장합니다. 메모리는 디스크와 달리 CPU에 직접적으로 연결되어 있어서 빠릅니다. 또한 HDD 방식의 디스크 경우 물리적인 움직임을 수반하는 자기적 방법을 이용했기 때문에 굉장히 느렸습니다. 요즘은 SSD 방식으로 발전하여 속도는 굉장히 빨라지긴 했지만 비용이 너무 비싸다는 장점이 있습니다.

이런 이유로 인해 RDB는 대용량 데이터나 변경이 잦지 않은 데이터를 디스크에 저장하여 안정성을 확보하기 위해 사용하고, Redis는 변경이나 조회가 잦은 데이터를 메모리에 저장하여 접근성을 높이기 위해 사용합니다.

사용 예시

이런 이유로 저도 Redis를 이용해 로그인한 사용자들의 정보를 담아 놓고 로그인 여부를 확인하기 위한 용도로 세션 정보를 메모리에 저장했고, 5초마다 데이터를 조회하고 수정해야하는 작업에 해당 데이터를 미리 메모리에 불러온 후 작업을 진행해 속도를 높였습니다.

results matching ""

    No results matching ""