C# 캐시의 기본 사용법 요약

5736 단어
본고는 C#캐시의 원리와 응용을 초보적으로 연구하고 실례를 들어 분석하고 정리했다. 이런 것들은 C#초보자들에게 숙련되고 익힐 필요가 있는 내용이다.구체적으로 다음과 같습니다.
1. 개요:
캐시 응용 목적: 캐시는 주로 데이터의 읽기 속도를 높이기 위한 것이다.서버와 응용 클라이언트 사이에 데이터의 병목이 존재하기 때문에 대용량 데이터를 읽을 때 캐시를 사용하여 클라이언트를 위해 직접 서비스를 하면 클라이언트와 서버 측의 데이터 상호작용을 줄이고 프로그램의 성능을 크게 향상시킬 수 있다.
1. 캐시의 참조 공간: System.Web.Caching; 캐시 이름 공간은 주로 세 가지 조작을 제공한다. 캐시 데이터 대상, 대상의 캐시 의존과 데이터베이스의 캐시 의존이다.여기서 캐시 객체는 클래스 Cache를 사용하지만 캐시가 변경되면 일반 객체와 데이터베이스 객체의 종속 처리가 다릅니다.
2, 관리 캐시 클래스: Cache
Cache 클래스는 데이터 객체를 저장하고 편집할 수 있는 방법을 제공합니다.Cache 클래스는 사전 클래스에 속하는데 일정한 규칙에 따라 사용자가 필요로 하는 데이터를 저장한다. 이런 데이터의 유형은 제한을 받지 않고 문자열, 수조, 데이터 테이블, Dataset과 해시 테이블 등이 될 수 있다.캐시 클래스를 사용하는 장점은 캐시의 데이터가 변화할 때 캐시 클래스는 데이터를 효력을 상실하고 캐시 데이터의 재추가를 실현하며 응용 프로그램에 통지하여 캐시의 신속한 업데이트를 보고하는 것이다.
2. 방법 설명:
Cache 클래스의 방법은 주로 캐시 데이터에 대한 편집 작업을 제공한다. 예를 들어 증가, 삭제, 수정 등이다.
Add Cache 객체에 데이터 추가 Insert Cache에 데이터 항목 삽입, 이미 존재하는 데이터 캐시 수정 Remove Cache 객체의 캐시 데이터 항목 제거 Get Cache 객체에서 지정된 데이터 항목을 가져옵니다. Object 유형으로 되돌아오는 것을 주의하십시오. 형식 변환이 필요합니다. GetType Cache 객체에서 데이터 항목의 유형을 가져와서 데이터 유형을 판단한 후 변환하기 쉽습니다.
가장 주의해야 할 것은 다음과 같은 구문을 사용하는 Add 방법입니다.

public Object Add (
string key,
Object value,
CacheDependency dependencies,
DateTime absoluteExpiration,
TimeSpan slidingExpiration,
CacheItemPriority priority,
CacheItemRemovedCallback onRemoveCallback
)


Add 방법을 사용할 때 상기 7개의 매개 변수는 필수적이다. 그 대표적 의미는 다음과 같다. 매개 변수'key'는 캐시 데이터 항목의 키 값을 대표하고 유일해야 한다."value"매개 변수는 캐시 데이터의 내용을 대표하며, 임의의 형식일 수 있습니다.매개 변수'dependencies'는 캐시의 의존 항목을 나타냅니다. 즉, 이 항목의 변경은 캐시 내용이 만료되었음을 의미합니다.의존 항목이 없으면 이 값을 NULL로 설정할 수 있습니다."absoluteExpiration"매개 변수는 날짜형 데이터로 캐시가 만료된 시간을 나타냅니다.NET 2.0이 제공하는 캐시는 기한이 지난 후에 사용할 수 있습니다. 얼마나 사용할 수 있는지 이 파라미터의 설정을 보십시오."slidingExpiration"파라미터의 유형은 일정 시간 간격을 표시하고 캐시 파라미터가 얼마나 오래 후에 삭제될지 나타냅니다. 이 파라미터는 absoluteExpiration 파라미터와 관련이 있습니다."priority"매개 변수인 "CacheItemPriority"에서 캐시를 해제하는 우선 순위를 나타냅니다. 우선 순위가 낮은 데이터 항목은 삭제됩니다.이 매개변수는 캐시가 객체를 종료할 때 주로 사용됩니다."onRemoveCallback"매개 변수는 캐시가 데이터 대상을 삭제할 때 호출되는 이벤트를 나타냅니다. 일반적으로 알림 프로그램으로 사용됩니다.
적용 코드는 다음과 같습니다.

ArrayList myarray = new ArrayList();
        myarray.Add("1. 1");
        myarray.Add("2. 1");
        myarray.Add("3. 1");
        myarray.Add("4. 1");
        string item = " ";
        Cache["item"] = item;// 
        Response.Write(Cache.Get("item") + "
"); item = " "; Cache.Insert("item", item);// Response.Write(Cache.Get("item") + "
"); //Cache.Remove("item"); // //Response.Write(Cache.Get("item") + "
"); Response.Write(Cache["item"].GetType().Name + "
");//GetType Cache Response.Write(Cache.Get("Array") + "
");//GetType Cache IDictionaryEnumerator bianli = Cache.GetEnumerator();// while (bianli.MoveNext()) { Response.Write(bianli.Value + "
"); } Response.Write(" :" + Cache.Count); if (Cache["Array"] == null) {// Array , , 5 Cache.Add("Array", myarray, null, DateTime.Now.AddSeconds(5), TimeSpan.Zero, CacheItemPriority.Normal, null); }

3, 캐시 의존 클래스: CacheDependency 클래스
기능 설명:
캐시 Dependency 클래스는 캐시 의존 클래스라고 불리는데 그 구체적인 의미는 캐시 대상의 실제 데이터가 바뀔 때 캐시 대상을 제때에 통지하는 데 나타난다.예를 들어 캐시 대상인'Category'는 XML 파일의 데이터를 저장하고 XML 파일이 바뀌면 시스템은 CacheDependency 클래스를 통해 캐시 대상인'Category'의 내용을 제때에 업데이트하여 사용자가 영원히 최신 데이터를 읽을 수 있도록 한다.
코드 인스턴스:
CaCheXml.xml 파일은 다음과 같습니다.



 
   
  28.00
 
 
   
  20.00
 
 
   1232sdf2
  20.00
 



백그라운드 코드는 다음과 같습니다.

private static CacheDependency Mydata;
    protected void Page_Load(object sender, EventArgs e)
    {
      if (!IsPostBack)
      {
        DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("Cachexml.xml"));// Xml 
        if (Cache["CXml"] == null)
        {
          // 
          Mydata = new CacheDependency(Server.MapPath("Cachexml.xml"));
          Cache.Add("CXml", ds, Mydata, DateTime.Now.AddSeconds(10), TimeSpan.Zero, CacheItemPriority.Normal, null);
        }
      }
    }
 
    protected void Button1_Click(object sender, EventArgs e)
    {
      if (Mydata.HasChanged)
      {// 
        Response.Write(" , "+Mydata.UtcLastModified);// 
      }
      if (Cache["CXml"] == null)
      {// xml 
        DataSet ds = new DataSet();
        ds.ReadXml(Server.MapPath("Cachexml.xml"));// Xml 
        // 
        Mydata = new CacheDependency(Server.MapPath("Cachexml.xml"));
        Cache.Add("CXml", ds, Mydata, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.Normal, null);
      }
      this.GridView1.DataSource = Cache["CXml"];
      this.GridView1.DataBind();
    }

좋은 웹페이지 즐겨찾기