개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.11 22:59

Wincache Refresh If Changed 기능에 대한 질문

목록
  • PWA전도사 1일 전 2025.05.11 22:59
  • 5
    1
선생님, IIS에서 Wincache Refresh If Changed 기능을 사용하여 캐시를 자동으로 갱신하려고 하는데, 아래 코드를 사용하였습니다.

csharp

using System;

using System.Web;



class Program

{

    static void Main()

    {

        HttpRuntime.Cache.Insert("key", "value", null, DateTime.MaxValue, TimeSpan.Zero);

        wincache_refresh_if_changed();

    }



    public static void wincache_refresh_if_changed()

    {

        var cache = System.Web.Caching.Cache;

        var cacheItem = cache["key"];

        cache.Remove("key");

        cache.Add("key", cacheItem, null, DateTime.MaxValue, TimeSpan.Zero);

    }

}



이 코드를 사용하면 캐시가 갱신되는 것을 확인할 수 있으나, wincache_refresh_if_changed() 함수에서 캐시의 변경 여부를 확인하는 방법을 모르겠습니다.

이러한 기능을 사용하여 캐시의 변경 여부를 확인할 수 있는 방법을 알려주시겠습니까?

    댓글목록

    profile_image
    나우호스팅  1일 전



    Wincache Refresh If Changed 기능을 사용하여 캐시를 자동으로 갱신할 때, 캐시의 변경 여부를 확인하는 방법은 다음과 같습니다.

    1. `CacheItemRemovedCallback`을 사용하여 캐시의 변경 여부를 확인할 수 있습니다. `CacheItemRemovedCallback`은 캐시 항목이 제거될 때 호출되는 콜백 함수입니다. 캐시 항목이 제거된 후, 캐시 항목을 다시 추가하여 캐시의 변경 여부를 확인할 수 있습니다.

    2. 캐시 항목의 `Dependency`를 사용하여 캐시 항목의 변경 여부를 확인할 수 있습니다. `Dependency`는 캐시 항목의 변경 여부를 확인하기 위해 사용하는 객체입니다. 캐시 항목의 `Dependency`를 변경하면 캐시 항목이 갱신됩니다.

    3. 캐시 항목의 `LastModified` 시간을 사용하여 캐시 항목의 변경 여부를 확인할 수 있습니다. `LastModified` 시간은 캐시 항목이 마지막으로 갱신된 시간입니다. 캐시 항목의 `LastModified` 시간을 비교하여 캐시 항목의 변경 여부를 확인할 수 있습니다.

    위 방법 중 하나를 사용하여 캐시의 변경 여부를 확인할 수 있습니다.

    예를 들어, `CacheItemRemovedCallback`을 사용하여 캐시의 변경 여부를 확인하는 코드는 다음과 같습니다.

    #hostingforum.kr
    csharp
    
    public static void wincache_refresh_if_changed()
    
    {
    
        var cache = System.Web.Caching.Cache;
    
        var cacheItem = cache["key"];
    
        cache.Remove("key");
    
        cache.Add("key", cacheItem, new CacheItemRemovedCallback(RefreshCache), null, DateTime.MaxValue, TimeSpan.Zero);
    
    }
    
    
    
    public static void RefreshCache(string key, object value, CacheItemRemovedReason reason)
    
    {
    
        if (reason == CacheItemRemovedReason.DependencyChanged || reason == CacheItemRemovedReason.Expired)
    
        {
    
            var cache = System.Web.Caching.Cache;
    
            cache.Add("key", value, null, DateTime.MaxValue, TimeSpan.Zero);
    
        }
    
    }
    
    


    위 코드는 캐시 항목이 제거된 후, 캐시 항목을 다시 추가하여 캐시의 변경 여부를 확인합니다. `CacheItemRemovedCallback`은 캐시 항목이 제거될 때 호출되는 콜백 함수입니다. 캐시 항목이 제거된 후, 캐시 항목을 다시 추가하여 캐시의 변경 여부를 확인할 수 있습니다.

    2025-05-11 23:00

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 18,963건 / 24 페이지

검색

게시물 검색