이 글은 Redis에 대한 관련 지식을 제공하며, 캐시 눈사태, 캐시 고장 및 캐시 침투에 대한 관련 내용을 주로 소개합니다. 모두에게 도움이 되기를 바랍니다.
추천 학습: Redis 비디오 튜토리얼
Redis의 고주파 문제와 관련하여 캐시 눈사태, 캐시 고장 및 캐시 침투는 인터뷰 중에 모두가 비슷한 질문을 받았을 것이라고 생각합니다. 이러한 질문이 왜 그렇게 인기가 있습니까? Redis 캐시를 사용하면 이러한 문제가 발생하기 쉽기 때문입니다. 다음으로 이러한 문제가 어떻게 발생하는지, 그리고 그에 따른 해결방안은 무엇인지 살펴보겠습니다.
먼저 캐시 Avalanche에 대해 살펴보겠습니다. Cache Avalanche의 개념은 다음과 같습니다. Redis 캐시에서 많은 수의 요청이 처리되지 않아 요청이 데이터베이스로 넘치게 되고 이에 대한 압박이 발생합니다. 데이터베이스가 극적으로 증가합니다.
캐시 눈사태가 발생하는 이유는 두 가지로 요약할 수 있습니다.
첫 번째 시나리오를 살펴보겠습니다. 캐시에 있는 많은 양의 데이터가 동시에 만료됩니다.
전설에 따르면 많은 양의 데이터가 동시에 만료되었으며, 이때 해당 데이터를 읽어 달라는 요청이 많았음을 의미합니다. 물론, 캐시 사태가 발생하여 데이터베이스 압력이 급격히 증가하게 됩니다.
대량의 데이터가 동시에 만료되는 문제를 처리하려면 일반적으로 두 가지 솔루션이 있습니다.
대량의 데이터가 동시에 만료되는 상황에 이어 Redis 캐시 인스턴스 장애 상황을 살펴보겠습니다.
이 경우 Redis는 읽기 요청을 처리할 수 없으며 해당 요청은 자연스럽게 데이터베이스로 이동하게 됩니다.
일반적으로 이 상황을 처리하는 방법에는 두 가지가 있습니다. 비즈니스 시스템에서
회로 차단기 서비스/전류 제한 요청따라서 비즈니스 측면에 미치는 영향을 줄이기 위해 요청 전류 제한을 사용하여 QPS를 제어하고 데이터베이스에 대한 너무 많은 요청을 피할 수 있습니다. 예를 들어 아래 그림에는 초당 20,000개의 요청이 있지만 Redis 오류로 인해 다운되었습니다. 현재 제한 작업은 qps를 초당 2,000으로 줄였고 데이터베이스는 여전히 2,000 qps를 처리하는 데 문제가 없었습니다.
캐시 분석
캐시 분석은 자주 액세스하는 개별 핫스팟 데이터를 캐시할 수 없게 되어 요청이 데이터베이스로 쏟아지는 것을 의미합니다. 핫스팟 데이터가 만료되면 종종 발생합니다.캐시 고장 문제에 관해서는 매우 자주 액세스되는 핫 데이터이므로 처리 방법이 간단하고 투박하며 만료 시간이 직접 설정되지 않는 것으로 알고 있습니다. 핫스팟 데이터에 자주 액세스하지 않을 때까지 기다렸다가 수동으로 처리하면 됩니다.
캐시 사태는 특별한 것입니다. 즉, 액세스할 데이터가 Redis 캐시나 데이터베이스에 없다는 의미입니다. 많은 수의 요청이 시스템에 들어오면 Redis와 데이터베이스는 엄청난 압박을 받게 됩니다.
캐시 침투에는 일반적으로 두 가지 이유가 있습니다.
캐시 침투에 대해서는 다음 해결 방법을 참조할 수 있습니다.
첫 번째와 세 번째 사항은 이해하기 쉬우므로 여기서는 설명하지 않겠습니다. 두 번째 사항인 블룸 필터에 초점을 맞춰 보겠습니다.
Bloom 필터는 주로 요소가 집합에 있는지 확인하는 데 사용됩니다. 이는 고정 크기 바이너리 벡터(기본값이 0인 비트 배열로 이해될 수 있음)와 일련의 매핑 함수로 구성됩니다.
먼저 블룸 필터가 데이터를 어떻게 표시하는지 살펴보겠습니다.
추천 학습:
Redis 비디오 튜토리얼위 내용은 하나의 기사로 Redis 캐시 사태, 캐시 분석 및 캐시 침투를 이해하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!