기타 동작

1. FlushAll() 캐시 전체 삭제

mClient.Store(StoreMode.Set, "key1", 1234L);
Console.Write(mClient.Get("key1")); // 1234 정상 조회
mClient.FlushAll();
Console.Write(mClient.Get("key1")); // null 출력Code language: JavaScript (javascript)
주요 설명
  1. FlushAll()Memcached 서버의 모든 키를 지우므로 신중하게 사용하세요!
  • 운영 환경에서 호출 금지, 모든 업무 캐시가 전부 삭제됨;
  • 기존 데이터만 무효화하고 메모리를 회수하지 않습니다(Memcached 지연 정리).

2. TryGet 안전한 캐시 조회

object obj = null;
var isSuc = mClient.TryGet("key1", out obj );
// 키 존재:isSuc=true, obj =1234

isSuc = mClient.TryGet("key1", out obj );
// 키 없음:isSuc=false, obj 는 null 유지Code language: JavaScript (javascript)

Get() 와 TryGet() 비교

메서드특징적용 시나리오
mClient.Get(key)키가 없으면 null 반환;캐시 값 자체가 null 인 경우와 키가 없는 경우를 구분할 수 없음단순 조회, 키 존재 여부가 중요하지 않을 때
mClient.TryGet(key, out obj)불리언 값으로 키 존재 여부 판단;두 가지 null 케이스를 정확히 구분캐시 히트 여부 판단이 필요한 업무에서 권장

제네릭 버전도 지원:mClient.TryGet<T>(key, out T value)

유의사항

  • FlushAll()는 서버 측 명령어입니다. 클러스터 배포 시 기본적으로모든 노드 데이터를 삭제;
  • Memcached는 영속 기능이 없어 서비스 재시작 시 모든 데이터가 유실;
  • 캐시 관통 방지 판단에 TryGet을 우선 사용해 데이터베이스로 과도한 요청이 들어가는 것을 막으세요.

기타 동작

Previous:

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다