Programming/.NET

캐시는 페이지나 컨트롤의 전체 혹은 부분을 캐시하는것 뿐만 아니라 개발자가 원하는 특정 데이터를 캐시할 수도 있습니다.

 

Cache["tmp"] = "cliel";
Response.Write((Cache["tmp"] as string).ToString());

 

위 예제는 아주 간단한 캐시개체의 활용방법을 보여주고 있습니다. Cache에 특정 키와 값을 부여하고 같은 키를 통해 원하는 값을 다시 가져올 수 있습니다. Cache개체에는 거의 모든 타입의 데이터저장이 가능합니다.

 

Cache.Insert("tmp", "cliel", null, DateTime.Now.AddSeconds(600), System.Web.Caching.Cache.NoSlidingExpiration);

 

캐시 만료시간을 600초로 지정하지만 슬라이딩만료방식을 사용하지 않습니다.

 

Cache.Insert("tmp", "cliel", new System.Web.Caching.CacheDependency(Server.MapPath("tmp.xml")));

 

위 예제는 Dependency를 설정하는 경우입니다. Dependency에 tmp.xml을 지정함으로서 만일 tmp.xml파일내용이 변경되면 캐시가 만료되도록 하였습니다.

 

Cache.Insert("tmp", "cliel", new System.Web.Caching.CacheDependency(new string[] { Server.MapPath("tmp1.xml"), Server.MapPath("tmp2.xml") } ));

 

Dependency가 필요한 파일이 여러개라면 위와 같이 설정할 수도 있습니다.

 

AggregateCacheDependency acd = new AggregateCacheDependency();
acd.Add(new CacheDependency(Server.MapPath("tmp.xml")));
acd.Add(new SqlCacheDependency(new SqlCommand("Select samplecolumn From sampleTable;")));
Cache.Insert("tmp", "cliel", acd);

 

다른 타입의 Dependency를 설정해야 한다면 AggregateCacheDependency 클래스를 사용해야 합니다. 이 클래스의 인스턴스에 필요한 Dependency를 추가하고 Cache에 인스턴스를 포함시킵니다.

 

Dependency 타입은 CacheDependency를 상속함으로서 사용자 정의 캐시 종속성을 구현할 수 있습니다.

 

public class customer_dependency : CacheDependency
{

}

 

customer_dependency cd = new customer_dependency();
Cache.Insert("tmp", "cliel", cd);

'Programming > .NET' 카테고리의 다른 글

[ASP.NET] HttpModule, HttpHandler  (0) 2017.02.02
[ASP.NET] AJAX  (0) 2017.01.24
[ASP.NET] 캐시 - 2  (0) 2017.01.17
[ASP.NET] ExecuteXmlReader  (0) 2017.01.13
[ASP.NET] SiteMapDataSource  (0) 2017.01.03
[ASP.NET] 캐시 - 1  (0) 2016.12.26
0 0