2016-03-31 11 views
0

Ich habe Erfahrungen mit dem Zwischenspeichern der Daten in den Asp.Net Webforms-Anwendungen.Wie verwende ich den Cache für Store-Konstanten aus der DB in Asp.Net WebForms in der Webfarm?

Ich habe die Webfarm mit den vier Servern.

Ich habe eine Tabelle mit den Konstanten in MSSQL Server.

Ich möchte diese Konstanten nicht bei jeder HTTP-Anfrage aus der DB auswählen, sondern im Idealfall die Werte im Cache speichern und diese Werte aus dem Cache holen.

Wie kann ich dies auf der Webfarm tun? Was ist der beste Weg, dies zu tun?

Antwort

1

können Sie HttpContext.Cache verwenden, um diese Werte zu speichern, mit einer langen Ablaufzeit, oder wenn sie wirklich konstant (dh sie absolut nie ändern), dann können Sie eine static class mit static readonly Eigenschaften verwenden und diese Eigenschaften einmal füllen aus der Datenbank.

In beiden Fällen können sie überall in der Anwendung verwendet werden. Dieser Ansatz, wenn er in einer Webfarm verwendet wird, bedeutet, dass jeder Server die Werte einmal und nicht einmal für die gesamte Farm abruft, aber wenn die Anzahl der Werte nicht in die 10.000 fällt, würde ich mir darüber keine Sorgen machen.

-1

Wenn sich die Daten wirklich nie ändern, können Sie auch HttpContext.Current.Application verwenden, um die Informationen zu speichern.

Nach einer Übersicht here:

Application ist kein Cache, das eine globale Sammlung namens Wert. Wenn Sie ein Objekt zu Application hinzufügen, bleibt es so lange bestehen, bis eine AppDomain wiederverwendet wird.

  • Application-Variablen Variablen
  • Application-Variablen verhalten sich wie statische Variablen und sie sind Ersatz von statischen Variablen unter allen Benutzern einer Web-Anwendung gemeinsam genutzt werden als statische Variablen in Web-Anwendungen
  • nur gemeinsame Werte sollten staatenlos sind sein in Anwendungsvariablen beibehalten, und sobald sie nicht verwendet werden, sollten sie explizit entfernt werden.

Cache: Es ist möglich, signifikante Performance-Verbesserungen in ASP.NET-Anwendungen zu erhalten, indem das Zwischenspeichern häufig angeforderten Objekte und Daten entweder in den Application oder Cache Klassen. Während die Cache Klasse sicherlich viel mehr Flexibilität und Kontrolle bietet, scheint es nur einen marginalen Vorteil in Bezug auf erhöhten Durchsatz über die Application Klasse für Caching bieten. Es wäre sehr schwierig, ein Testschema zu entwickeln, das die möglichen Vorteile der integrierten Klasse Cache von weniger genutzten Objekten durch den Aufräumprozess genau messen könnte, im Gegensatz zu der Tatsache, dass Application diese Funktion nicht bietet. Der Entwickler muss in diesem Fall eine Entscheidung treffen und sollte auf den Bedürfnissen und der Zweckmäßigkeit des Projekts und seiner Nutzungsmuster basieren.

+1

Willkommen bei Stack Overflow! Während der Link die Frage möglicherweise beantwortet, ändern sich die Links, so dass Stack Overflow es vorzieht, nicht von ihnen abhängig zu sein. [Es wäre besser] (// meta.stackoverflow.com/q/8259), hier die wesentlichen Teile der Antwort aufzunehmen und den Link als Referenz bereitzustellen. –