Notice
Recent Posts
Recent Comments
Link
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

기록하자..

Redis와 Memcached 중 어느 것을 선택해야 하는가? 본문

카테고리 없음

Redis와 Memcached 중 어느 것을 선택해야 하는가?

P23Yong 2022. 7. 16. 18:55

프로젝트를 진행하면서 JWT 토큰 인증 방식을 통해 로그인을 구현하던 중에

Refresh 토큰을 저장할 저장소를 만들어야(?) 하는 시점이 왔다.

처음에는 DB에 저장했었는데.. 이는 저장소의 I/O 작업이 발생해서 성능상 좋지 않다고 생각했다.

그래서 캐시 방식으로 동작하는 인메모리 저장소인 Redis와 Memcached 를 알게 되었는데, 이중 어느 것을 선택해야 할까?

 

먼저 Redis 란?

Redis는 Remote Dictionary Server의 약자이다.

말 그대로, 외부 Dictionary 형태를 가진 서버이다. dictionary는 파이썬의 dictionary 형태를 생각하면 이해하기 쉬울 것 같은데,

Key-Value 형태의 자료를  외부 서버에 저장하는 것이다.

 

Memcached 는?

Redis와 똑같이 Key-Value 형태의 자료를 메모리에 저장하는 방식을 사용한다.

 

Redis VS Memcached

위에서 봤을 때는 둘 다 똑같아 보이는데 무엇이 다른지 먼저 살펴보겠습니다.

  Redis Memcached
저장 방식 Key - Value
지원하는
데이터 타입
String, List, Hash, Set, Sorted Set.. String
스레드 Single Thread Multi Thread
한 개의 키에 저장할 수
있는 Value의 용량
512MB 1MB

 

Redis와 Memcached 모두 in-memory storage이고 데이터를 Key-Value 형태로 저장하는 것은 알았는데, 각 저장소의 장점을 알아보자.

 

Redis 장점

  • Memcached 보다 다양한 데이터 타입
    • Redis는 List, Set, Sorted Set, Hash 등 다양한 데이터 타입을 지원하기 때문에 캐시로서 전반적으로 많은 성능과 높은 효율성을 제공해준다.
  • 데이터 복구 가능
    • Redis는 데이터를 Disk에 저장하기 때문에 서버가 갑작스럽게 종료가 되어도 데이터를 복구할 수 있다
  • 다양한 데이터 삭제 정책
    • Memcached는 LRU 방식의 데이터 삭제 정책만 지원하지만, Redis는 다양한 삭제 정책을 지원한다.
  • 큰 Value 용량
    • Memcached는 Value에 1MB 만 저장할 수 있는 반면, Redis는 512MB 까지 저장할 수 있다.

 

Memcached 장점

  • 멀티 스레드 지원
    • Redis는 Single Thread 로 동작하게 되는데, Memcached는 Multi thread를 지원한다.

 

 

결론

Google Trends 나 npm trends 에서 Redis와 Memcahced를 비교해본 결과 Redis가 압도적으로 관심이 높은 것을 확인할 수 있었다.

또한 서비스 환경에서는 추후 확장성을 고려해서 Redis를 사용하는 것이 좋아보인다. 

  • 데이터를 디스크에 유지해야 하는 경우
  • 사용자가 지정하는 데이터 삭제 정책이 필요한 경우
  • 다양한 자료구조 지원

위와 같은 이유들로 현재 진행중인 프로젝트에 Redis를 사용하게 되었다.

 

참고

https://www.linkedin.com/pulse/memcached-vs-redis-which-one-pick-ranjeet-vimal/

 

Memcached vs Redis, Which One to Pick?

Memchached or Redis? Which one to use? This is the most common question arises in every technical discussion when we talk about performance improvement. When performance needs to be improved, caching is often the first step taken, and Memcached or Redis

www.linkedin.com