728x90
반응형
목차는 redis 목차 에 있습니다.
source 는 Github 에 있습니다.
[Redis 8편] 싱글스레드를 사용하는 Redis 는 왜 빠른가?
In memory 데이터베이스
- redis 는 in memomry 데이터베이스를 사용합니다.
- 메모리 엑세스는 랜덤 disk I/O 보다 빠릅니다.
- 코드 측면에서 봐도 in-memory 데이터베이스는 간단한 코드로 데이터에 접근이 가능한 반면 disk 에 접근하기 위해선 여러 코드를 작성해야 합니다
I/O Multiplexing
- I/O Multiplexing & 싱글 스레드 조합을 사용해 동시 요청에 대해서 성능을 보장할 수 있습니다.
- 옛날에는 select, poll 다중 IO 처리 방법이 있었습니다.
- Select 에 대해서 간단히 알아보면 fd_set (파일 디스크립터 set) 을 만들어 fd 에 입력이 들어오면 blocking 이 해제되고 동작을 수행하는 방식입니다. select 의 한게는 fd 최대 개수가 1024 개라는 점과 모든 fd 를 순회해야한다는 점, 커널에게 직접 요청해야하는 점 등이 있습니다.
- 이런 방식에서 개선된게 linux 의 epoll 방식이고, 커널 레벨의 멀티플렉싱을 지원해줍니다. select 의 단점을 해결하기 위해 나왔으며, 변경대상이 있을 때만 알려줍니다.
Low-level 데이터 구조
- low-level 의 데이터 구조를 사용하기에 성능에 좋다는데 이건 무슨말인지 이해가 안가서 따로 정리 못했습니다.
Reference
'NoSQL > redis' 카테고리의 다른 글
[Redis 7편] Redis 로컬 띄우기 (docker, docker-compose) (0) | 2022.08.31 |
---|---|
[Redis 6편] Redis 성능 (0) | 2022.06.11 |
[Redis 3편] Redis 상세 정리 (key, 클러스터, 센티넬) (0) | 2022.01.13 |
[Redis 2편] Redis 상세 정리 (명령어, 싱글 스레드, 영속성) (0) | 2022.01.13 |
[Redis 4편] spring redis 환경 세팅 및 예제 (0) | 2022.01.06 |
댓글