niedziela, 7 października 2012

MemoryCache - prosty mechanizm cache w .NET 4.0

Tworząc w ASP.NET z pewnością mieliście styczność z klasą Cache, która umożliwia buforowanie danych do późniejszego użycia. Do tej pory byliśmy ograniczeni do aplikacji webowych. Wraz z wersją .NET 4.0 dodano obsługę buforowania dla wszystkich rodzajów aplikacji (Windows Forms, WPF itd.).

Obsługa bufora jest bardzo prosta:

Code:
            var key = "klucz";
            var value = "value";
            var memoryCache = MemoryCache.Default;
            var cachePolicy = new CacheItemPolicy();
            cachePolicy.SlidingExpiration = TimeSpan.FromMinutes(1);
            memoryCache.Add(key, value, cachePolicy);

            var valueFromCache = memoryCache[key];
            if (valueFromCache == null)
            {
                memoryCache[key] = value;
            }

Powyższy kod oznacza, iż jeżeli wartość nie zostanie pobrana w ciągu minuty od jej umieszczenia tam, zostanie skasowana.

Oprócz SlidingExpiration mamy do dyspozycji AbsoluteExpiration:

Code:
cachePolicy.AbsoluteExpiration = DateTime.Now.AddMinutes(1);

oznacza on dokładną datę kiedy obiekt zostanie usunięty z bufora.

Do dyspozycji zostały nam oddane także dwa monitory:
  • SqlChangeMonitor - sprawdzający zmiany w bazie danych
  • HostFileChangeMonitor - sprawdza czy pod podanymi ścieżkami plików/folderów dokonano zmian

Innymi przydatnymi cechami bufora są:
  • możliwość ustalenia rozmiaru bufora
  • możliwość opróżnienia bufora - według procentów
  • dwa zdarzenia: UpdateCallback oraz RemovedCallback

Brak komentarzy:

Prześlij komentarz