페이지에 3개의 버튼을 추가하고 버튼을 두 번 클릭하기 위한 이벤트 처리 방법을 만듭니다. 3개의 버튼은 다양한 만료 전략을 사용하여 ASP.NET 캐시를 추가합니다.
<asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="만료되지 않는 캐시 삽입"
OnClick="btn_InsertNoExpirationCache_Click" />
<asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="절대 시간 삽입
만료 캐시" OnClick="btn_InsertAbsoluteExpirationCache_Click" />
<asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="변경 시간 삽입
만료 캐시" OnClick="btn_InsertSlidingExpirationCache_Click" />
세 가지 버튼의 Click 이벤트 처리 방법은 다음과 같습니다.
protected void btn_InsertNoExpirationCache_Click(객체 전송자, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("데이터", ds);
}
protected void btn_InsertAbsoluteExpirationCache_Click(객체 전송자, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("데이터", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
}
protected void btn_InsertSlidingExpirationCache_Click(객체 전송자, EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("데이터", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));
}
이 세 가지 ASP.NET 캐시 만료 전략을 분석해 보겠습니다.
◆만기한은 없습니다. 캐시된 키와 값을 직접 할당하면 됩니다.
◆절대적인 시간 만료. DateTime.Now.AddSeconds(10)은 캐시가 10초 후에 만료됨을 의미하고 TimeSpan.Zero는 원활한 만료 전략이 사용되지 않음을 의미합니다.
◆변경 시간 만료(부드러운 만료). DateTime.MaxValue는 절대 시간 만료 정책이 사용되지 않음을 의미하고 TimeSpan.FromSeconds(10)은 캐시가 연속 10초 동안 액세스 없이 만료됨을 의미합니다.
여기서는 Insert() 메서드를 사용하여 캐시를 추가했습니다. 실제로 Cache에는 캐시에 항목을 추가할 수도 있는 Add() 메서드도 있습니다. 차이점은 Add() 메서드는 캐시에 없는 항목만 추가할 수 있다는 것입니다. 이미 캐시에 있는 항목을 추가하면 실패하지만(예외는 발생하지 않음) Insert() 메서드는 원본 항목을 덮어쓸 수 있습니다.
참고: 응용 프로그램과 달리 캐시는 자체적으로 동시성을 처리하므로 ASP.NET 캐시에 삽입할 때 잠금 작업을 사용할 필요가 없습니다.