developer tip

HttpRuntime.Cache와 HttpContext.Current.Cache의 차이점은 무엇입니까?

optionbox 2020. 11. 21. 14:14
반응형

HttpRuntime.Cache와 HttpContext.Current.Cache의 차이점은 무엇입니까?


HttpRuntime.Cache의 차이점은 무엇입니까 HttpContext.Current.Cache?


http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx 에서 다음 세부 정보를 찾습니다.

캐싱을 위해 HttpContext.Current.Cache를 사용하여 살펴 보았지만 다른 블로그를 읽은 후 HttpContext를 사용하는 캐싱이 실제 캐싱을 수행하기 위해 HttpRuntime.Cache를 사용한다는 것을 발견했습니다. HttpRuntime을 직접 사용할 때의 장점은 예를 들어 콘솔 애플리케이션 및 단위 테스트에서 항상 사용할 수 있다는 것입니다.

HttpRuntime.Cache를 사용하는 것은 간단합니다. 객체는 캐시에 저장 될 수 있으며 문자열로 인덱싱됩니다. 키 및 객체와 함께 다른 중요한 매개 변수를 캐시하는 것은 만료 시간입니다. 이 매개 변수는 객체가 캐시에서 삭제되기 전 시간을 설정합니다.

여기에 좋은 링크가 있습니다.

또 다른 좋은 자원.


HttpContext를 사용한 캐싱은 HttpRuntime.Cache를 사용하여 실제 캐싱을 수행합니다. HttpRuntime을 직접 사용할 때의 장점은 콘솔 응용 프로그램과 단위 테스트에서 항상 사용할 수 있다는 것입니다.


객체는 캐시에 저장 될 수 있고 문자열로 인덱싱 될 수 있다고 이미 말했듯이 사용 HttpRuntime.Cache사용 이 간단 HttpContext.Current.Cache합니다. 또한 단위 테스트 및 콘솔에서도 HttpRuntime사용할 수 있습니다.

다음은 HttpRuntime.Cache.

public static XmlDocument GetStuff(string sKey) 
{
XmlDocument xmlCodes;
xmlCodes = (XmlDocument) HttpRuntime.Cache.Get( sKey );
if (xmlCodes == null)
{
      xmlCodes = SqlHelper.ExecuteXml(new dn("Nodes", "Node"), "Get_Stuff_From_Database", sKey);
      HttpRuntime.Cache.Add(sKey, xmlCodes, null,
      DateTime.UtcNow.AddMinutes(1.0),
      System.Web.Caching.Cache.NoSlidingExpiration,
      System.Web.Caching.CacheItemPriority.Normal, null);
}
return xmlCodes;
}

이 예제가 실제로 수행하는 작업 :


이 메서드 GetStuff는 데이터베이스에서 항목 집합을 검색하는 데 사용되는 문자열 매개 변수를 사용합니다. 이 메서드는 먼저 XmlDocument매개 변수 키로 인덱싱 된 항목이 캐시에 있는지 확인 합니다. 그렇다면 데이터베이스를 쿼리하지 않으면이 개체를 반환합니다. 데이터베이스에서 문서를 검색 한 후 캐시에 넣습니다. 이 메서드가 정해진 시간 내에 다시 호출되면 데이터베이스에 부딪히지 않고 개체를 가져옵니다.

참고 URL : https://stackoverflow.com/questions/863654/difference-between-httpruntime-cache-and-httpcontext-current-cache

반응형