프로그래밍 언어/DB

Redis 와 MongoDB 의 로그인 토큰 적합성 비교

작은소행성 2024. 10. 31. 17:37

 

보통 로그인 토큰 관리는 Redis에서 많이 하는데 

현재 프로젝트에서는 MongoDB 를 메인 디비로 사용하고 있어서

둘 중 어떤 DB로 로그인 토큰 관리하는게 적합한지 궁금해서 찾아보게 되었다.

 

 

데이터 구조 및 저장 형식

Redis 는 Key-Value 형태의 데이터 구조를 가지는 인메모리 데이터 저장소이다. 

MongoDB는 Document 형태의 데이터 구조를 가지며 디스크 기반으로 데이터를 저장한다. 

이러한 차이로 Redis 는 메모리 기반으로 빠른 데이터 처리가 가능하고 주로 캐싱에 사용되고 

MongoDB는 대용량의 데이터를 저장하고 관리하는데 적합하다. 

 

 

Redis 사용 시 장점

  • 속도: Redis는 메모리 기반 데이터 스토어로, I/O가 메모리에만 집중되어 있어 조회 속도가 매우 빠르다. 이는 로그인 토큰을 주고받는 것처럼 빠른 응답이 필요한 서비스에 이상적이다.
  • TTL 관리: 토큰의 만료 시간을 설정할 때 Redis의 TTL(Time to Live) 기능을 사용하여 자동으로 만료되는 로직을 쉽게 구현할 수 있다.
  • 분산 환경: 여러 Redis 인스턴스를 통해 세션이나 토큰을 분산 관리할 수 있어 확장성 면에서 유리하다.

 

MongoDB 사용 시 고려할 점

  • 속도: MongoDB는 디스크 기반 NoSQL로 Redis에 비해 속도가 느릴 수 있으며, 대량의 토큰을 저장하고 빠르게 조회해야 하는 환경에서는 Redis보다 효율이 떨어질 수 있다.
  • TTL 인덱스: MongoDB도 TTL 인덱스를 통해 만료 시점을 설정할 수 있지만, 만료 주기가 분 단위로 동작하기 때문에 Redis의 실시간 만료 관리보다 세밀함이 부족할 수 있다.
  • 복잡한 데이터: 토큰 외에 세션 정보에 복잡한 데이터가 포함되고 이를 검색, 필터링하는 작업이 필요한 경우에는 MongoDB의 문서 구조가 유리할 수 있다.

 

 

결론

로그인 토큰 관리에는 일반적으로 Redis가 더 적합하며, 특히 응답 속도가 중요한 경우에 유리하다.

다만, 특정 조건이나 복잡한 데이터 구조가 필요하다면 MongoDB를 사용해 볼 수도 있지만, 일반적인 토큰 관리에서는 Redis가 더 많이 사용된다.

 

 

 

 

반응형