😀 Jerry/면접 질문

[1분 면접] Redis가 싱글 스레드로 만들어진 이유

Jerry_K 2025. 4. 1. 12:26

📌 면접 답변

Redis는 싱글 스레드 기반으로 설계되어 구조를 단순화하고 성능을 극대화 할 수 있다.

 

1. Lock이나 동기화 처리를 하지 않아도 되므로, 경쟁 조건 없이 안정적이고 빠르게 작동

 

2. Redis의 대부분의 연산이 O(1) 또는 O(logN)처럼 매우 빠르기 때문에, 멀티스레드가 꼭 필요하지는 않음

 

3. IO Multiplexing을 통해 여러 클라이언트 요청을 비동기적으로 감지하고,
싱글 스레드 이벤트 루프로 빠르게 순차 처리하여 단순하지만 성능이 뛰어난 구조를 만들 수 있음

 

 

  • Redis는 Remote Dictionary Server를 의미
    • 캐싱, 세션 저장소, 실시간 데이터 저장소 등 다향한 용도로 사용

 

IO MultiPlexing 

  • IO MultiPlexing은 하나의 스레드가 여러개의 I/O (소켓,파일,파이프 등)을 동시에 감시 할 수 있게 함
  • 과거에는 소켓마다 스레드 하나씩 할당했지만, 이제 하나의 스레드가 수많은 소켓을 감시
  • 동작 원리
    • 감시할 소켓 목록 등록
    • 커널이 "어떤 소켓에 데이터가 도착했는지" 알려줌
    • 준비된 소켓만 골라서 처리

 

Event Loop

  • IO 이벤트가 발생 하면, 그걸 받아서 적절한 처리 함수 호출
  • 다시 다음 이벤트를 기다리는 무한 루프 구조 

📌 내 답변

Redis가 싱글 스레드로 만들어진 이유는 잘 모르겠다.

사실 싱글 스레드인 것도 오늘 알았지만, 내 지식들을 이용해서 유추를 해보겠다.

 

Redis같은 경우 인메모리 저장 장치로 읽고 쓰는 작업이 엄청나게 빠르게 진행된다.

만일 멀티 스레드인 경우 동시성의 문제가 발생 할 수 있기 때문에, 단일 스레드로 안전하게 사용하는 것 같다.


[출처 및 참고 자료]

https://www.maeil-mail.kr/question/140

 

매일메일 - 기술 면접 질문 구독 서비스

기술 면접 질문을 매일매일 메일로 보내드릴게요!

www.maeil-mail.kr

면접 내용 출처