Redis가 싱글 스레드로 동작하는 이유

슈퍼콜라·2025년 6월 5일
0
싱글 스레드(Single Thread)란?
싱글 스레드는 하나의 실행 흐름(Thread)만을 사용하는 프로그래밍 또는 시스템 구조를 의미
이 구조에서는 한 번에 하나의 작업만 처리할 수 있으며 모든 명령은 순차적으로 실행

동시성 문제를 피하기 위해
멀티스레드에서는 레이스 컨디션이나 데드락 같은 문제가 생기기 쉬운데 싱글 스레드에선 이런 걱정이 없음 모든 명령을 순차적으로 처리해서 데이터 일관성을 쉽게 유지할 수 있음

빠른 성능을 위해
Redis는 메모리 기반이라 I/O가 빠름 싱글 스레드 구조 덕분에 컨텍스트 스위칭 같은 오버헤드 없이 빠르게 처리 가능함

설계가 단순해서 유지보수가 쉬움
복잡한 락이나 동기화 로직이 필요 없어서 구조가 깔끔하고 유지보수도 쉬움

이벤트 기반으로 높은 동시성 처리 가능
싱글 스레드라도 이벤트 루프를 이용해 비동기로 여러 클라이언트 요청을 효율적으로 처리할 수 있음

Redis 싱글 스레드 구조의 단점

CPU 코어를 1개밖에 활용하지 못함
Redis는 기본적으로 하나의 스레드만 사용하기 때문에 멀티 코어 CPU 환경에서도 한 코어만 사용

블로킹 작업이 전체 처리 흐름을 막을 수 있음
하나의 명령이 시간이 오래 걸리면 그 명령이 끝날 때까지 다른 요청들도 대기해야 함

복잡한 연산에는 비효율적
Redis는 빠른 읽기/쓰기 작업에 최적화되어 있지만 복잡한 계산이나 대용량 데이터 처리에는 성능이 급격히 떨어질 수 있음
멀티 스레드 기반 시스템에 비해 병렬 연산이나 CPU 집약적인 작업 처리에 약함

Scale-up의 한계
성능을 더 높이기 위해 서버 사양을 늘리더라도 싱글 스레드 구조 때문에 일정 이상 성능 향상이 어려움

profile
공부하는거 정리

0개의 댓글