분산 캐시는 극단적인 트랜잭션 로드 중에 빠른 성능을 요구하는 모든 애플리케이션에 필수적입니다. 메모리 내 분산 캐시는 데이터베이스보다 성능이 좋습니다. 또한 데이터베이스 서버가 수행할 수 없는 더 많은 서버를 캐시 클러스터에 쉽게 추가할 수 있기 때문에 더 큰 트랜잭션 로드를 처리하는 선형 확장성을 제공할 수 있습니다.
이러한 모든 이점에도 불구하고 여전히 한 가지 문제가 있습니다. 대부분의 경우 분산 캐시는 네트워크를 통해 전용 캐시 서버 집합에서 호스팅되므로 애플리케이션이 데이터를 가져오려면 네트워크를 이동해야 합니다. 그리고 이는 로컬에서, 특히 애플리케이션 프로세스 내에서 데이터에 액세스하는 것만큼 빠르지 않습니다. 여기서 클라이언트 캐시가 유용합니다.
In NCache은 클라이언트 캐시 분산 캐시 클러스터에 대한 연결을 열린 상태로 유지하고 수신 이벤트 알림 클라이언트 캐시 데이터가 변경될 때마다 캐시 클러스터에서 분산 캐시 클러스터는 클라이언트 캐시 중 데이터 항목의 위치를 알고 있으므로 이벤트 알림은 모든 클라이언트 캐시에 브로드캐스팅하는 대신 관련 클라이언트 캐시에만 전송됩니다.
NCache 세부 정보 클라이언트 캐시 캐시의 이벤트 알림
클라이언트 캐시는 어떻게 작동합니까?
클라이언트 캐시는 웹/응용 프로그램 서버의 로컬 캐시에 불과하지만 분산 캐시에 연결되어 있음을 인식합니다. 또한 클라이언트 캐시는 프로세스 내(클라이언트 캐시가 애플리케이션 내부에 있음) 또는 프로세스 외부일 수 있습니다. 이를 통해 클라이언트 캐시는 분산 캐시보다 훨씬 빠른 읽기 성능을 제공하는 동시에 클라이언트 캐시 데이터가 항상 분산 캐시와 동기화되도록 할 수 있습니다.
그러나 분산 캐시는 분산 캐시 클러스터에서 데이터를 성공적으로 업데이트한 후 클라이언트 캐시에 비동기적으로 알립니다. 기술적으로 이는 클라이언트 캐시의 일부 데이터가 분산 캐시보다 오래된 작은 시간 창(밀리초)이 있음을 의미합니다. 이제 대부분의 경우 이것은 응용 프로그램에서 완벽하게 허용됩니다. 그러나 경우에 따라 애플리케이션은 데이터의 100% 정확도를 요구합니다.
따라서 이러한 상황을 처리하기 위해 NCache 클라이언트 캐시에 대한 비관적 동기화 모델도 제공합니다. 이 모델에서 애플리케이션이 클라이언트 캐시에서 항목을 가져오려고 할 때마다 클라이언트 캐시는 먼저 분산 캐시에 동일한 캐시 항목의 최신 버전이 있는지 확인합니다. 그렇다면 클라이언트 캐시는 분산 캐시에서 최신 버전을 가져옵니다. 이제 분산 캐시로의 이 이동에는 비용이 들지만 분산 캐시에서 캐시된 항목을 완전히 가져오는 것보다 여전히 빠릅니다.
클라이언트 캐시는 언제 사용합니까?
이 블로그를 읽은 후 떠오르는 주요 질문은 클라이언트 캐시를 사용할 때와 사용하지 않을 때입니다. 대답은 매우 간단합니다. 애플리케이션이 쓰기보다 읽기를 더 많이 수행하는 경우, 특히 동일한 항목이 반복되는 경우 클라이언트 캐시를 사용하십시오.
애플리케이션이 많은 업데이트(또는 최소한 읽기만큼)를 수행하는 경우 클라이언트 캐시를 사용하면 업데이트 속도가 느려지므로 클라이언트 캐시를 사용하지 마십시오. 이것은 클라이언트 캐시와 분산 캐시라는 두 개의 서로 다른 캐시를 지금 업데이트하고 있기 때문에 발생합니다.
결론
그래서, NCache 분산 캐시로 클라이언트 캐시를 활용할 수 있습니다. 완전히 작동하는 60일 평가판 다운로드 NCache Enterprise 그리고 직접 사용해 보세요.
당신은 정말 흥미로운 블로그를 가지고 있습니다. 그러한 유익한 게시물을 계속 게시하십시오!