다음을 통해 공유


방법: 캐시에 항목 추가

업데이트: 2007년 11월

응용 프로그램 캐시에 있는 항목은 Cache 개체를 사용하여 액세스할 수 있습니다. 응용 프로그램 캐시에 항목을 추가할 때는 Cache 개체의 Insert 메서드를 사용할 수 있습니다. 이 메서드는 캐시에 항목을 추가합니다. 이 메서드에는 종속성, 만료 및 제거 알림을 설정할 수 있는 여러 옵션을 사용하여 항목을 추가할 수 있는 오버로드가 여러 개 있습니다. Insert 메서드를 사용하여 캐시에 항목을 추가할 때 같은 이름의 항목이 이미 있는 경우에는 캐시의 기존 항목이 대체됩니다.

Add 메서드를 사용하여 캐시에 항목을 추가할 수도 있습니다. 이 메서드를 사용하면 Insert 메서드와 동일한 옵션을 모두 설정할 수 있지만 Add 메서드는 사용자가 캐시에 추가한 개체를 반환합니다. 또한 Add 메서드를 사용하는 경우 캐시에 같은 이름의 항목이 이미 있어도 항목이 대체되지 않고 예외도 발생하지 않습니다.

이 항목의 절차에서는 응용 프로그램 캐시에 항목을 추가하는 다음과 같은 방법에 대해 설명합니다.

  • 키와 값을 통해 항목을 직접 설정하여 캐시에 항목 추가

  • Insert 메서드를 사용하여 캐시에 항목 추가

  • 캐시에 항목을 추가하고, 종속성이 변경되면 캐시에서 항목이 제거되도록 종속성 추가. 다른 캐시 항목, 파일 및 여러 개체를 기준으로 종속성을 설정할 수 있습니다.

  • 캐시에 만료 정책을 가진 항목 추가. 항목의 종속성을 설정하는 방법 외에, 상대(sliding) 만료와 같이 일정 기간 후에 만료되거나 절대 만료와 같이 지정된 시간에 만료되도록 설정할 수 있습니다. 절대 만료나 상대(sliding) 만료를 정의할 수 있지만 이 둘을 모두 정의할 수는 없습니다.

  • 캐시에 항목을 추가하고 캐시된 항목의 상대적인 우선 순위 정의. .NET Framework는 제거할 캐시 항목을 상대적인 우선 순위에 따라 결정합니다. 즉, 우선 순위가 낮은 항목이 우선 순위가 높은 항목보다 먼저 캐시에서 제거됩니다.

  • Add 메서드를 호출하여 항목 추가

여기에 설명된 종속성 외에 SQL Server 테이블에서 또는 사용자 지정 종속성을 기반으로 종속성을 만들 수 있습니다. 자세한 내용은 ASP.NET 캐싱 개요ASP.NET에서 SqlCacheDependency 클래스를 사용한 캐싱을 참조하십시오.

또한 CacheItemRemovedCallback 대리자를 사용하면 캐시에서 항목이 제거될 때 응용 프로그램 캐시에서 응용 프로그램에 알리도록 할 수 있습니다. 전체 예제를 보려면 방법: 캐시에서 항목이 제거될 때 응용 프로그램에 알림을 참조하십시오.

키와 값을 통해 항목을 직접 설정하여 캐시에 항목을 추가하려면

  • 사전에 항목을 추가하는 것처럼 항목의 키와 값을 지정하여 캐시에 항목을 추가합니다.

    다음 코드 예제에서는 CacheItem1이라는 항목을 Cache 개체에 추가합니다.

    Cache["CacheItem1"] = "Cached Item 1";
    
    Cache("CacheItem1") = "Cached Item 1"
    

Insert 메서드를 사용하여 캐시에 항목을 추가하려면

  • 추가할 항목의 키와 값을 전달하여 Insert 메서드를 호출합니다.

    다음 코드 예제에서는 CacheItem2라는 이름의 문자열을 추가합니다.

    Cache.Insert("CacheItem2", "Cached Item 2");
    
    Cache.Insert("CacheItem2", "Cached Item 2")
    

종속성을 지정하여 캐시에 항목을 추가하려면

  • CacheDependency 개체의 인스턴스를 전달하여 Insert 메서드를 호출합니다.

    다음 코드 예제에서는 캐시의 다른 항목 CacheItem2에 종속된 CacheItem3이라는 항목을 추가합니다.

    string[] dependencies = { "CacheItem2" };
    Cache.Insert("CacheItem3", "Cached Item 3",
        new System.Web.Caching.CacheDependency(null, dependencies));
    
    Dim dependencies As String() = {"CacheItem2"}
    Cache.Insert("CacheItem3", "Cached Item 3", _
        New System.Web.Caching.CacheDependency( _
        Nothing, dependencies))
    

    다음 코드 예제에서는 캐시에 추가된 CacheItem4라는 항목을 보여 줍니다. 이 항목에서는 XMLFile.xml이라는 파일에 파일 종속성을 설정합니다.

    Cache.Insert("CacheItem4", "Cached Item 4",
        new System.Web.Caching.CacheDependency(
        Server.MapPath("XMLFile.xml")));
    
    Cache.Insert("CacheItem4", "Cached Item 4", _
        New System.Web.Caching.CacheDependency( _
        Server.MapPath("XMLFile.xml")))
    

    다음 코드 예제에서는 다중 종속성을 만드는 방법을 보여 줍니다. 캐시의 다른 항목 CacheItem1에 키 종속성을 추가하고 XMLFile.xml이라는 파일에 파일 종속성을 추가합니다.

    System.Web.Caching.CacheDependency dep1 = 
        new System.Web.Caching.CacheDependency(Server.MapPath("XMLFile.xml"));
    string[] keyDependencies2 = { "CacheItem1" };
    System.Web.Caching.CacheDependency dep2 = 
        new System.Web.Caching.CacheDependency(null, keyDependencies2);
    System.Web.Caching.AggregateCacheDependency aggDep = 
        new System.Web.Caching.AggregateCacheDependency();
    aggDep.Add(dep1);
    aggDep.Add(dep2);
    Cache.Insert("CacheItem5", "Cached Item 5", aggDep);
    
    Dim dep1 As CacheDependency = _
        New CacheDependency(Server.MapPath("XMLFile.xml"))
    Dim keyDependencies2 As String() = {"CacheItem1"}
    Dim dep2 As CacheDependency = _
        New System.Web.Caching.CacheDependency(Nothing, _
        keyDependencies2)
    Dim aggDep As AggregateCacheDependency = _
        New System.Web.Caching.AggregateCacheDependency()
    aggDep.Add(dep1)
    aggDep.Add(dep2)
    Cache.Insert("CacheItem5", "Cached Item 5", aggDep)
    

캐시에 만료 정책을 가진 항목을 추가하려면

  • 절대 또는 상대(sliding) 만료 시간을 전달하여 Insert 메서드를 호출합니다.

    다음 코드 예제에서는 절대 만료 시간이 1분인 항목을 캐시에 추가합니다.

    Cache.Insert("CacheItem6", "Cached Item 6",
        null, DateTime.Now.AddMinutes(1d), 
        System.Web.Caching.Cache.NoSlidingExpiration);
    
    Cache.Insert("CacheItem6", "Cached Item 6", _
        Nothing, DateTime.Now.AddMinutes(1.0), _
        TimeSpan.Zero)
    

    다음 코드 예제에서는 상대(sliding) 만료 시간이 10분인 항목을 캐시에 추가합니다.

    Cache.Insert("CacheItem7", "Cached Item 7",
        null, System.Web.Caching.Cache.NoAbsoluteExpiration,
        new TimeSpan(0, 10, 0));
    
    Cache.Insert("CacheItem7", "Cached Item 7", _
        Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _
        New TimeSpan(0, 10, 0))
    

캐시에 우선 순위가 설정된 항목을 추가하려면

  • CacheItemPriority 열거형의 값을 지정하여 Insert 메서드를 호출합니다.

    다음 코드 예제에서는 우선 순위 값이 High인 항목을 캐시에 추가합니다.

    Cache.Insert("CacheItem8", "Cached Item 8",
        null, System.Web.Caching.Cache.NoAbsoluteExpiration,
        System.Web.Caching.Cache.NoSlidingExpiration,
        System.Web.Caching.CacheItemPriority.High, null);
    
    Cache.Insert("CacheItem8", "Cached Item 8", _
        Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _
        System.Web.Caching.Cache.NoSlidingExpiration, _
        System.Web.Caching.CacheItemPriority.High, _
        Nothing)  
    

Add 메서드를 사용하여 캐시에 항목을 추가하려면

  • 항목을 나타내는 개체를 반환하는 Add 메서드를 호출합니다.

    다음 코드 예제에서는 캐시에 CacheItem9 라는 항목을 추가하고 변수 CachedItem9 값이 추가한 항목이 되도록 설정합니다.

    string CachedItem9 = (string)Cache.Add("CacheItem9",
        "Cached Item 9", null,
        System.Web.Caching.Cache.NoAbsoluteExpiration,
        System.Web.Caching.Cache.NoSlidingExpiration, 
        System.Web.Caching.CacheItemPriority.Default,
        null);
    
    Dim CachedItem9 As String = CStr(Cache.Add("CacheItem9", _
        "Cached Item 9", Nothing, _
        System.Web.Caching.Cache.NoAbsoluteExpiration, _
        System.Web.Caching.Cache.NoSlidingExpiration, _
        System.Web.Caching.CacheItemPriority.Default, _
        Nothing))
    

참고 항목

작업

방법: ASP.NET의 캐시에서 항목 삭제

방법: 캐시에서 항목이 제거될 때 응용 프로그램에 알림

방법: 캐시된 항목의 값 검색

개념

ASP.NET 캐싱 개요

응용 프로그램 데이터 캐싱

ASP.NET에서 SqlCacheDependency 클래스를 사용한 캐싱