본문 바로가기
IT/Knowledge

Redis vs Memcached

by 성준하이 2023. 1. 2.
반응형

Redis(Remote Dictionary Storage, 레디스)와 Memcached(맴캐시드)는 유명한 오픈소스인, 인메모리 데이터 저장소이다.

 

둘 모두 사용하기 쉽고, 고성능을 자랑하지만, 엔진으로 사용할 때 차이를 반드시 고려해야한다.

Memcached는 명료하고 단순함을 위하여 개발된 반면, Redis는 다양한 용도에 효과적으로 사용할 수 있도록 많은 특징을 가지고 개발되었다. 각 엔진들이 제공하는 기능과 필요한 상황을 고려하여 필요에 맞게 선택을 할수 있다.

 

공통점
  • 1ms 이하의 응답대기시간
    • 1ms 이하의 응답시간을 제공합니다. 데이터를 메모리에 저장하기 때문에, 디스크 기반의 데이터베이스보다 빠르게 데이터를 읽을 수 있음
  • 개발의 용이성
    • 문법적으로 사용하기 쉽고, 개발코드 양 또한 적음
  • 데이터 파티셔닝
    • 데이터를 여러 노드에 분산하여 저장시킬 수 있고, 따라서 수요가 증가할 때 더 많은 데이터를 효과적으로 처리하기 위하여 스케일아웃이 가능
  • 다양한 프로그래밍 언어 지원
    • 자바, 파이썬, C, C++, C#, JavaScript, Node.Js, Ruby, Go 그리고 다른 언어들을 지원
차이점
Memcached만 의 특징

멀티스레드를 지원하기 때문에, 멀티프로세스코어를 사용할 수 있다. 따라서, 스케일업을 통하여 더욱 많은 작업처리를 할 수 있다.

 

Redis만 의 특징
  • 더욱 다양한 데이터 구조
    문자열 뿐만 아니라 List, Set, 정렬된 Set, Hash, Bit 배열, hyperloglogs (매우 적은 메모리로 집합의 개수를 추정할 수 있는 방법)을 지원하고 프로그램에서 위의 다양한 자료구조를 사용할 수 있다. 예를 들어, Sorted Set을 활용하여 게임유저의 상위랭크 정보를 쉽게 제공할 수 있다.
  • Snapshots
    Redis는 특정시점에 데이터를 디스크에 저장하여 파일 보관이 가능하다. 또한, 장애상황시 복구에 사용할 수 있다.
  • 복제
    Master — Salves 구조로, 여러개의 복제본을 만들 수 있다. 따라서 데이터베이스 읽기를 확장할 수 있기 때문에 높은 가용성(오랜 시간동안 고장나지 않음) 클러스터를 제공한다.
  • 트랜젝션
    트랜젝션이란 데이터베이스 상태를 변경시키는 작업 단위를 의미하고, 원자성, 일관성, 독립성, 지속성의 특징을 가지고 있다. Redis는 이러한 특징을 지원한다.
  • Pub / Sub messaging
    Publish(발행)과 Sub(구독)방식의 메시지를 패턴 검색이 가능하고 따라서 높은 성능을 요구하는 채팅, 실시간 스트리밍, SNS 피드 그리고 서버상호통신에 사용할 수 있다.
  • 루아 스크립트 지원
    매우 경량화된 절차스크립트 언어인 루아를 지원한다. eval 명령어를 사용하여 루아스크립트를 실행시킬 수 있습니다. 따라서, 프로그램을 명료하게하고 성능을 높일 수 있다.
  • 위치기반 데이터 타입 지원
    Redis는 실시간 위치기반데이터를 지원한다. 따라서, 두 위치의 거리를 찾거나, 사이에 있는 요소 찾기등의 작업을 수행할 수 있고, 이를 활용하여 맛집, 길찾기 그리고 지도기반의 고성능 서비스를 제공할 수 있다.
반응형

'IT > Knowledge' 카테고리의 다른 글

도커라이징 이란?  (10) 2023.01.19
nvm이란?  (8) 2023.01.18
Test에서 Stub이란?  (30) 2022.12.10
kubernetes. Skaffold  (32) 2022.12.07
[Beacon] 근거리 데이터 통신 > 비콘  (44) 2022.11.15

댓글