[CS] Redis vs Memcached

nayu1105·2023년 5월 24일

CS

목록 보기
1/4

Redis 와 Memcached

공통점

  • 인메모리 저장소(In Memory 저장소)
  • Key-Value 저장 방식

차이점

RedisMemcahed
데이터 타입String, Set, Sorted Set, Hash, ListString
데이터 저장Memory, DiskOnly Memory
메모리 재사용재사용 XLRU 알고리즘
스레드Single ThreadMulti Thread
캐시용량Key, Value 모두 512MBKey name 250 byte, Value 1MB


Redis 의 특징

  • 다양한 데이터 구조 지원 (List, Set, Sorted Set, Hash 등)
  • Snapshots 지원 : 특정 시점에 데이터를 디스크에 저장하여 파일 보관 가능, 장애상황시 복구에 사용할 수 있다.
  • 복제 : Master - Slaves 구조로, 여러 개의 복제본을 만들 수 있다.
  • 트랜잭션 지원
  • 루아 스크립트 지원
  • 위치기반 데이터 타입 지원 : 실시간 위치기반데이터를 지원. 두 위치의 거리 찾기, 사이에 있는 요소 찾기 등의 작업 수행이 가능하다. 이를 활용하여 지도기반의 고성능 서비스를 제공할 수 있다.
  • 싱글 스레드 지원 : 1번에 1개의 명령어만 실행

Memcached 의 특징

  • 명료하고 단순함을 위하여 개발
  • 멀티 스레드 지원 : 멀티 프로세스 코어를 사용할 수 있다. 따라서 스케일업을 통해 더욱 많은 작업처리를 할 수 있다.


결론

Redis 가 다양한 지원을 하기 때문에 Memcached 보다 사용하기 용이할 것 같지만 싱글스레드만을 지원하기에 속도가 중요한 서비스에서는 Memcached 사용을 고려해볼 것 같다.

예를 들어 모든 데이터 삭제, 모든 데이터 키 조회 등에서 100만건 기준 redis는 1초, memcached는 1ms 정도 소요로 속도 차이가 꽤 크다.

Redis 장애의 원인이 대부분 해당 기능에서 일어난다고 하니 사용할 때 주의하도록 하자.

0개의 댓글