본문 바로가기

전체 글

(8)
[레디스] 클러스터링 적용하기 레디스 클러스터링의 필요성 레디스는 In-Memory DB로서 한번 장애가 발생한다면 데이터가 유실이 될 수도 있으므로 고가용성 유지를 위한 방법이 있어야 합니다. Redis는 Replication(Master-Slave) 구조를 지원하며, 추가적으로 Sentinel, Cluster 구성 방법을 제공합니다. Replication은 단순하게 Master노드를 복제하여 Slave에서도 쓸 수 있도록 구성하는 방식입니다. Sentinel은 Master노드가 장애시 복제된 Slave가 Master로 자동으로 승격되도록 구성하는 방식입니다. Cluster는 이러한 고가용성 뿐만 아니라 Sharding을 제공하여 데이터를 분산하여 저장할 수 있도록 합니다. 이중에서 클러스터링을 선택한 이유는 다음과 같습니다. Se..
[파이썬] 가비지 컬렉션 가비지 컬렉션이란? 모든 언어에서 변수를 등록하면 변수에 메모리가 메모리의 주소값이 할당된다. 그리고 변수의 크기만큼 메모리를 쓰게되는데 이 메모리는 우리가 알고있는 RAM을 의미한다. RAM은 휘발성 저장공간이다. 용량이 적지만 컴퓨터를 끄면 사라지는 데이터 공간이다. 대신에 빠르다. 만약 이 메모리 공간을 비효율적으로 사용하여 사용자의 메모리를 많이 잡아먹는다면 흔히 렉이 걸린다고 하듯 프로그램이 느려질 수 있다. 따라서 이 공간을 효율적으로 관리하는것이 프로그램을 빠르게 돌리는데에 있어서 중요하다. 가비지 컬렉션은 쓰지않는 값을 모아서 소멸시킨다. 레퍼런스 카운트 레퍼런스(reference) = 참조 파이썬은 변수의 레퍼런스 카운트가 0이 되었을때 그 변수는 소멸 되상이 되고 일정 규칙에 의해 가비..