📌 면접 답변
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
면접 내용 출처
'😀 Jerry > 면접 질문' 카테고리의 다른 글
[1분 면접] [매일메일] HTTP/1.1과 HTTP/2.0에 대해서 설명 (0) | 2025.04.03 |
---|---|
[1분 면접] 프로세스보다 스레드의 컨텍스트 스위칭이 더 빠른 이유 (2) | 2025.04.02 |
[1분 면접] 스케일 아웃과 스케일 업의 차이점 (0) | 2025.03.31 |
[1분 면접] 캐시 스탬피드 현상에 대하여 설명해주세요. (0) | 2025.03.26 |
[1분 면접] ACID에 대해 설명해주세요. (0) | 2025.03.25 |