Welcher Cachetyp eignet sich für die Verwendung in einem Umbraco-Projekt und wie kann ich einen intelligenten Cache implementieren?

8

Was ist der Unterschied zwischen HttpContext.Current.Cache und ApplicationContext.ApplicationCache.RuntimeCache in Umbraco? Und welche ist besser in Bezug auf Effizienz zu verwenden?

Ich habe Umbraco 7.4.x in meinem Projekt und ASP.NET MVC verwendet. In meinem Projekt habe ich eine Liste von Produkten, die so viele Elemente enthalten können und ich möchte den Cache aus diesem Grund verwenden. Insbesondere möchte ich meine Daten in den Cache stellen und wenn ein neues Element zu Products node hinzugefügt wird, wird der Cache automatisch aktualisiert. Wie kann ich es implementieren?

Modifiziert: Bitte geben Sie mir eine Implementierung mit Details für meinen Code.

  

Produkte.cshtml:

%Vor%
  

ProductsController.cs:

%Vor%
  

BaseRenderMvcController.cs:

%Vor%
  

BaseRenderModel.cs:

%Vor%     
Jahan 31.08.2016, 13:19
quelle

1 Antwort

7

Es gibt mehrere Caches, die Sie in Umbraco verwenden können. Sie haben Folgendes zur Verfügung:

ApplicationContext.ApplicationCache.RuntimeCache : Dies ist ein Cache, der für ALLE Anforderungen verfügbar ist.

ApplicationContext.ApplicationCache.RequestCache - Dies ist ein Cache, der NUR für die aktuelle Anforderung gültig ist. Verwenden Sie, wenn Sie ein Objekt für die Verwendung in verschiedenen Ansichten zwischenspeichern möchten.

ApplicationContext.ApplicationCache.StaticCache - Dies ist ein statischer Cache und sollte nur sehr selten und mit Vorsicht verwendet werden, da eine falsche Verwendung zu Speicherproblemen führen kann.

Wenn die Objekte, die Sie zwischenspeichern, aktualisiert werden müssen, wenn ein Knoten im Backoffice geändert wird, müssen Sie einen ICacheRefresher schreiben, um damit umzugehen.

Hier finden Sie Informationen zu den drei Caches und wie Sie Objekte in den Cache bekommen: Ссылка

Es gibt hier ein Beispiel für einen ICacheRefresher: Ссылка

    
Tim 31.08.2016, 15:16
quelle