/ / .net Artchitecture, die wie - alles cachen, vom Cache lesen - asp.net, Architektur, Caching

.net Art-Architektur, die wie funktioniert - Cache alles, lesen aus dem Cache - asp.net, Architektur, Caching

Hallo, ich möchte ein Beispiel, das Folgendes ausführt: Datenbank <-> Datenzugriff + Cache <-> Geschäftslogik <-> UI

Im Grunde sollte auf alles, was Sie von der Datenbank wünschen, vom Cache aus zugegriffen werden können. Wenn es sich nicht im Cache befindet, wird die darunterliegende Datenzugriffsebene aufgefüllt, wenn sie zurückgegeben wird, andernfalls wird sie aus dem Cache zurückgegeben

Gibt es einen Nachteil? In welchen Szenerien könnte dies eine gute Lösung sein

Antworten:

0 für die Antwort № 1

Ich mag es, meine eigene statische Wrapper-Klasse für die System.Web.Caching.Cache Klasse.

Im Wesentlichen erstellen Sie eine Klasse in Ihrem WebAnwendungsmodul, und erstellen Sie alle Standard-Cache-Funktionen (Abrufen, Hinzufügen, Entfernen usw.). Die Methoden müssen mit Generika implementiert werden, um die Typsicherheit zu gewährleisten.

Hier ist ein gutes Beispiel

Sie erstellen dann eine weitere statische Klasse, die wie ein Servicemodell von Ihrer Webschicht bis zu Ihrer Datenschicht wirkt.

Ihre Webschicht ruft Methoden für die Statik aufclass, die zuerst einen CacheKey basierend auf den angegebenen Methodenparametern generieren würde.

Je nachdem, wie Ihre Geschäftsobjekte eingerichtet sind, müssen Sie möglicherweise tiefe Kopien für Ihre Objekte bereitstellen (dh IClonable implementieren und die Clone-Methode verwenden).

Ihre Cache-Lösung hängt auch von Ihrem Web abBauernhofarchitektur. Wenn Sie über viele Webserver verfügen, besteht die Möglichkeit, dass Ihre Daten veraltet werden. Daher müssen Sie sich für die beste Option entscheiden (SQLCacheDependecy, Distributed Caching usw.).


0 für die Antwort № 2

Die offensichtlichen Nachteile sind die Gültigkeit des Caches (woher wissen Sie, dass die Daten seit dem Zwischenspeichern nicht geändert / hinzugefügt wurden) und die Speicher- / Festplattennutzung.

Dies ist eine gute Lösung, wenn Ihre Daten statisch sind (Sie müssen nicht darüber nachdenken, wann der Cache aktualisiert werden muss).

Wir haben einen ähnlichen Ansatz mit dynamischen Daten und verwendetCache führte zu einer Reihe von Problemen. Manchmal waren Cache-Aktualisierungen zu teuer (der Server musste alle Clients über die Daten informieren, die zwischengespeichert wurden und die geändert wurden), in einigen Fällen war der Speicherbedarf auf den Clients zu hoch.