Redis와 Memcached의 차이

itonse·2024년 5월 30일
0

CS 스터디

목록 보기
44/56

해당 주제 관련 기술면접 질문 미리보기

Q. Redis와 Memcached의 차이에 대해서 설명해주세요.


Redis와 Memcached 비교

공통점

  1. 1ms 이하의 응답시간: 데이터를 메모리에 저장하기 때문에, 디스크 기반의 데이터베이스보다 빠릅니다.

  2. 스케일아웃: 데이터를 분산하여 저장시킬 수 있습니다.

  3. 다양한 언어 지원: Java, Python, C 등의 다양한 프로그래밍 언어를 지원합니다.


대표적인 차이점

  1. 스레드 모델
  • Redis는 싱글 스레드 기반으로 동작합니다.
  • Memcached는 멀티스레드를 지원해서 멀티 프로세싱이 가능합니다.(스케일 업 가능)
  1. 자료구조
  • Redis는 다양한 자료구조를 지원합니다.(List, Set, Hash, Sorted Set 등)
  • Memcached는 문자열 형태로만 저장합니다.

Redis만의 특징

  1. 다양한 데이터 구조
  • List, Set, Sorted Set, Hash, Bit 배열, HyperLogLogs 등을 지원합니다.
  • 예를 들어, Sorted Set을 사용하여 게임 유저의 상위 랭크 정보를 쉽게 제공할 수 있습니다.
  1. Snapshots
  • 특정 시점에 데이터를 디스크에 저장하여 파일로 보관할 수 있습니다.
  • 이는 장애 상황 시 데이터를 복구하는 데 유용합니다.
  1. 복제
  • Master-Slave 구조로 여러 개의 복제본을 만들 수 있습니다.
  • 이를 통해 데이터베이스 읽기 성능을 확장할 수 있어 높은 가용성을 제공하는 클러스터를 구성할 수 있습니다.
  1. 트랜잭션
  • 데이터베이스의 원자성, 일관성, 독립성, 지속성을 보장하는 트랜잭션을 지원합니다.
  1. Pub/Sub 메시징
  • Publish/Subscribe 방식의 메시징 패턴을 지원하여, 채팅, 실시간 스트리밍, SNS 피드 등 높은 성능이 요구되는 시스템에서 사용할 수 있습니다.

Memcached 만의 특징

1.LRU(Least Recently Used) 지원
최근에 사용되지 않은 값을 제거하는 기능을 지원하여 메모리 관리를 효율적으로 할 수 있습니다.



Redis와 Memcached의 차이 관련 기술면접 질문

Q. Redis와 Memcached의 차이에 대해서 설명해주세요.

Redis와 Memcached는 모두 인메모리 데이터 저장소로, 빠른 응답 시간을 제공합니다. 그러나 둘은 몇 가지의 차이점이 있습니다.

먼저 Redis 다양한 자료구조, 스냅샷, 복제, 트랜잭션, Pub/Sub 메시징을 지원합니다. 복잡한 애플리케이션에 적합합니다. 반면에, Memcached는 단순하고 빠른 캐싱 시스템으로, 문자열 기반 데이터 캐싱에 최적화되어 있습니다. 멀티스레드를 지원하고 LRU 알고리즘을 사용해 메모리를 관리합니다.



ref.
https://github.com/ksundong/backend-interview-question
https://career.guru99.com/ko/top-10-redis-interview-questions/
https://chrisjune-13837.medium.com/redis-vs-memcached-10e796ddd717

0개의 댓글