본문 바로가기

NoSQL/redis8

[Redis 8편] 싱글스레드를 사용하는 Redis 는 왜 빠른가? 목차는 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 (파일 .. 2022. 9. 9.
[Redis 7편] Redis 로컬 띄우기 (docker, docker-compose) 목차는 redis 목차 에 있습니다. source 는 Github 에 있습니다. [Redis 7편] Redis 로컬 띄우기 (docker, docker-compose) 내용 정리 배경 Redis 를 로컬 환경에서 띄워서 테스트 해야하는 상황이 발생할 수 있습니다. Redis 를 로컬 환경에서 띄우는 방법중에 Embedded Redis Server 를 이용해서 동작시키는 방법이 있습니다. 그러나 Embedded Redis Server 가 M1 Mac 에서는 동작이 안되어서 어느 환경에서나 Embedded Redis Server 가 동작하지 않습니다. 그렇기에 docker, docker-compose 조합을 생각해봤고 정리했습니다. Docker, Docker-compose 란? Docker Docker는 소.. 2022. 8. 31.
[Redis 6편] Redis 성능 목차는 redis 목차 에 있습니다. source 는 Github 에 있습니다. [Redis 6편] Redis 성능 Cache Stampede Cache Stampede 란 캐시가 만료될 때, 대용량 트래픽의 경우 캐시 miss 가 여러번 발생할 수 있습니다. 여러 요청에 대해 cache miss 가 발생하면 각 request 는 DB 를 조회해서 데이터를 읽어와 캐시에 여러 번 쓰게 될 것 입니다. cache miss 와 cache write 가 여러번 발생해서 성능에 영향을 주는 것이 Cache Stampede 입니다. Cache Stampede 해결방안 이런 현상을 해결하기 위해 PER(Probablistic Early Recomputation) 알고리즘을 도입합니다. PER 이란 TTL (만료시간.. 2022. 6. 11.
[Redis 3편] Redis 상세 정리 (key, 클러스터, 센티넬) 목차는 redis 목차 에 있습니다. source 는 Github 에 있습니다. [Redis 3편] Redis 상세 정리 (key, 클러스터, 센티넬) Redis Key 레디스의 키는 문자열을 사용합니다. 허용되는 최대 키 크기는 512MB 입니다. object:id 의 형태 권장합니다. member:1 member:2 센티넬 센티넬이란 master/slave 가 정상 동작하는지 모니터링 하며, 문제가 생겼을 경우 조치해주는 모듈 마스터가 문제가 있으면 slave 를 master 로 설정 ping 을 통해 노드들의 장애를 판단하며, 여러 대의 Sentinel 에 의해 판단을 합니다. Redis 클러스터 클러스터란 여러 개 서버를 묶어서 하나의 시스템처럼 동작하게 하는 방식입니다. Redis 클러스터 특징.. 2022. 1. 13.