>  기사  >  데이터 베이스  >  Redis 눈사태란 무엇입니까?

Redis 눈사태란 무엇입니까?

青灯夜游
青灯夜游원래의
2019-06-04 10:32:145519검색

redis 눈사태란 무엇인가요? 다음 기사는 여러분에게 간략한 소개를 제공할 것입니다. 여러분에게 도움이 되기를 바랍니다.

Redis 눈사태란 무엇입니까?

눈사태란 무엇인가요?

캐시 계층은 많은 수의 요청을 전달하므로 스토리지 계층을 효과적으로 보호합니다. 그러나 어떤 이유로 캐시 전체가 서비스를 제공할 수 없는 경우 모든 요청이 스토리지 계층에 도달하고 스토리지 계층에 도달합니다. 볼륨이 급격히 증가하여 스토리지 계층이 실패하게 됩니다. 캐시 눈사태에 대한 영어 설명은 running bison입니다. 이는 캐시 계층이 충돌한 후 동시 트래픽이 질주하는 들소처럼 백엔드 스토리지에 액세스한다는 의미입니다.

캐시 눈사태에 대한 간단한 이해는 다음과 같습니다. 원래 캐시의 오류로 인해(또는 데이터가 캐시에 로드되지 않음) 새 캐시가 도착하지 않은 기간 동안(캐시는 일반적으로 Redis에서 가져옵니다. 아래 참조) 원래 캐시에 액세스해야 하는 모든 요청은 데이터베이스를 쿼리하면 데이터베이스 CPU와 메모리에 큰 부담을 주게 되며 심각한 경우에는 데이터베이스 가동 중지 시간과 시스템 충돌이 발생할 수 있습니다.

Redis 눈사태란 무엇입니까?

캐시 장애는 아래와 같습니다.

Redis 눈사태란 무엇입니까?

이 문제가 발생하는 시나리오는 캐시 서버를 다시 시작하거나 특정 기간에 많은 수의 캐시가 집중되어 있는 경우입니다. 실패하면 많은 양의 데이터가 손실됩니다. DB에 직접 액세스하려면 DB에 많은 부담이 가해집니다.

캐시 실패 시 눈사태 효과는 기본 시스템에 끔찍한 영향을 미칩니다! 그렇다면 이 문제에 대한 해결책은 무엇입니까?

Solution

1) Redis 클러스터와 DB 클러스터의 고가용성을 설정하여 Redis가 다운되면 즉시 다른 머신으로 교체할 수 있습니다. 이렇게 하면 일부 위험을 예방할 수 있습니다.

2) 뮤텍스 잠금을 사용하세요

캐시가 만료된 후 잠금이나 대기열을 통해 데이터베이스를 읽고 쓰는 스레드 수를 제어합니다. 예를 들어, 하나의 스레드만 데이터를 쿼리하고 특정 키에 대한 캐시를 쓸 수 있으며 다른 스레드는 대기합니다. 독립형 머신인 경우 동기화 또는 잠금을 사용하여 해결할 수 있습니다. 분산 환경인 경우 redis setnx 명령을 사용하여 해결할 수 있습니다.

3) 서로 다른 키에 대해 서로 다른 만료 시간을 설정하여 캐시 무효화 시점을 일관되지 않게 만들고 균등한 분포를 달성할 수 있습니다.

4) 만료되지 않음

Redis는 만료되지 않도록 설정됩니다. 이는 핫스팟이 없음을 보장합니다. 즉, 물리적으로 만료되지 않습니다.

5), 리소스 보호

넷플릭스의 hystrix를 사용하면 다양한 리소스의 스레드 풀을 분리하여 메인 스레드 풀을 보호할 수 있습니다.

위 내용은 Redis 눈사태란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.