캐시 침투, 파괴 캐시, 캐시 눈사태 - 필수적인 기술 인터뷰

 캐시 침투 : 데이터에 대한 높은 동시 액세스가 데이터베이스에 존재하지 않는이 데이터는 캐시와 절연 파괴 캐시 쿼리는 데이터베이스마다에 배치됩니다.

 1) 유효 캐시 침투의 문제를 해결하는 방법은 여러 가지가 있는데, 가장 흔한 블룸 필터의 사용은, 데이터의 특정 부재에 충분히 큰 비트 맵에있는 모든 데이터를 해시 할 것이다 비트 맵 차단 해제, 따라서 기본 데이터베이스 쿼리에 압력을 회피.

반환 된 쿼리 데이터는이 빈 캐시 결과 여전히)에 관계없이 데이터의 존재, 또는 시스템 실패하지 않는다 (비어 있지만 만료 시간이 매우 짧은 될 경우 2) 더 간단하고 원유 방법은, 또한 대부분의 오분 이상 없음.

캐시 고장 : 키를 직접 데이터베이스에 다시 높은 동시 액세스 높은 동시 액세스를 만료되었습니다.

1) 뜨거운 데이터가 결코 만료되지 보자.
2) 플러스 뮤텍스 뮤텍스 참조 코드를 나는 데이터베이스에 액세스 한대로 방문하지 않습니다

캐시 눈사태 : 키 연체, 한 무리의
      설정 만료 시간을 확인 핫 데이터가 만료되지 않습니다 일치하지 않습니다.

if (courseTypesOfDb == null || courseTypesOfDb.size()<1){
    //缓存穿透
    redisClient.add(COURSETYPE_KEY_IN_CACHE,"[]");
}else{
    //转换为json字符串
    String jsonArrStr = JSONArray.toJSONString(courseTypesOfDb);
    //设置获取
    //缓存数据永远不过期 缓存击穿 缓存雪崩
    redisClient.add(COURSETYPE_KEY_IN_CACHE,jsonArrStr);
}

 

 

출시 여섯 개 원래 기사 · 원 찬양 한 · 전망 (182)

추천

출처blog.csdn.net/qq_41972951/article/details/104392502