> 데이터 베이스 > Redis > Redis 캐시 전략은 무엇입니까?

Redis 캐시 전략은 무엇입니까?

(*-*)浩
풀어 주다: 2019-06-18 13:44:37
원래의
4090명이 탐색했습니다.

Redis를 캐시로 사용할 때 메모리 공간이 가득 차면 오래된 데이터가 자동으로 제거됩니다. Memcached는 기본적으로 이러한 방식으로 작동하며 대부분의 개발자는 이에 익숙합니다. LRU는 Redis에서 지원하는 유일한 재활용 알고리즘입니다.

Redis 캐시 전략은 무엇입니까?

Eviction strategy

(권장 학습: Redis 비디오 튜토리얼)최대 메모리 제한(maxmemory)에 도달하면 Redis는 구성된 정책에 따라 결정합니다. maxmemory-policy 특정 동작.

현재 버전에서 Redis 3.0이 지원하는 전략은 다음과 같습니다.

noeviction: 삭제 전략 없음, 최대 메모리 제한에 도달했을 때 더 많은 메모리가 필요한 경우 오류 메시지가 직접 반환됩니다. 대부분의 쓰기 명령은 더 많은 메모리를 차지하게 합니다(DEL과 같은 드문 예외는 제외).

allkeys-lru: 모든 키에 공통되며 가장 최근에 사용된(LRU) 키를 먼저 삭제합니다.

휘발성-lru: 만료가 설정된 부분으로만 제한되며 LRU(최근 사용 횟수) 키를 먼저 삭제합니다.

allkeys-random: 모든 키에 공통되며 일부 키를 무작위로 삭제합니다.

휘발성-random: 만료가 설정된 부분으로만 제한되며 일부 키를 무작위로 삭제합니다.

휘발성-ttl: 만료가 설정된 부분으로만 제한되며, 남은 시간(TTL)이 짧은 키가 먼저 삭제됩니다.

만료 키가 설정되지 않고 전제 조건이 충족되지 않으면 휘발성-lru, 휘발성-랜덤 및 휘발성-ttl 전략의 동작은 기본적으로 noeviction(삭제 없음)과 동일합니다.

시스템의 특성에 따라 적절한 퇴거 전략을 선택해야 합니다. 물론, 동작 중 명령어를 통해 Eviction 정책을 동적으로 설정할 수도 있고, 튜닝을 위한 INFO 명령어를 통해 캐시 미스, 적중을 모니터링할 수도 있습니다.

일반적으로 말하자면:

핫 데이터와 콜드 데이터로 나누어진다면 allkeys-lru 전략을 사용하는 것이 좋습니다. 즉, 특정 비즈니스 특성이 확실하지 않은 경우 일부 키를 자주 읽고 쓰는 경우 allkeys-lru가 좋은 선택입니다.

루프에서 모든 키를 읽고 써야 하거나 각 키의 액세스 빈도가 비슷한 경우 allkeys-random 전략을 사용할 수 있습니다. 즉, 모든 요소를 ​​읽고 쓸 확률이 거의 동일합니다.

Redis가 TTL을 기준으로 삭제해야 하는 키를 필터링하도록 하려면 휘발성-ttl 전략을 사용하세요.

휘발성-lru 및 휘발성-랜덤 전략의 주요 적용 시나리오는 캐시 키와 영구 키가 모두 있는 인스턴스입니다. 일반적으로 이와 같은 시나리오의 경우 두 개의 별도 Redis 인스턴스를 사용해야 합니다.

만료를 설정하면 추가 메모리가 소비된다는 점을 언급할 가치가 있습니다. 따라서 allkeys-lru 전략을 사용하면 만료 시간을 더 이상 설정할 수 없기 때문에 메모리를 더 효율적으로 사용할 수 있습니다.

Redis 관련 기술 기사를 더 보려면

Redis 데이터베이스 사용 튜토리얼 소개

칼럼을 방문하여 알아보세요!

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿