Frage

Zur Zeit arbeite ich an einer große Website, das ist sehr dynamisch, und muss so eine große Menge an Informationen im Speicher auf einer nahezu permanente Basis (Dinge wie Konfigurationseinstellungen für die Kasse, oder den Baum verwendet die Menüstruktur zu implementieren).

Diese Information ist nicht sitzungsspezifisch, es ist für jeden Faden konsequent die Website.

Was ist der beste Weg, um diese Daten zu halten, global innerhalb ASP, so kann es bei Bedarf zugegriffen werden kann, statt neu geladen auf jedem Gebrauch?

War es hilfreich?

Lösung

Alle AppSettings in web.config sind automatisch zwischengespeichert (dh , werden sie aus der XML jedes Mal, wenn Sie sie brauchen nicht lesen zu verwenden).

Sie könnten auch manuell den Cache manipulieren selbst .

Bearbeiten : Bessere Verbindungen ...

Andere Tipps

Es ist nicht genau klar, ob Ihre Informationssitzung spezifisch ist oder nicht ... wenn es ist, dann das Objekt ASP Session verwenden. In Anbetracht Ihrer Beschreibung der Skala, möchten Sie wahrscheinlich bei Speichern des Zustands in SQL Server suchen:

http://support.microsoft.com/kb/317604

Das ist der 101-Ansatz. Wenn Sie nach etwas ein wenig beefier suchen, dann Memcached Check-out (das ist ausgesprochen Mem-Cache-Dee):

http://www.danga.com/memcached/

Das ist das System, das wie Facebook und Twitter-Apps nutzen.

Viel Glück!

Mit ASP.NET Caching-Funktion ist eine gute Option, denke ich. Neben John Antwort, können Sie Microsoft Patterns & Practices-Team Caching Application Block verwenden .

Dies ist ein gutes Video der verschiedenen Möglichkeiten zu erforschen zu können Anwendungszustand beibehalten. http://www.asp.net/learn/3.5-videos/ Video-11.aspx Es Bürsten auf dem Anwendungsobjekt, das für die gesamte Anwendung ist global für alle Benutzer und zeigen Ihnen, wie Sie einen Trefferzähler erstellen (natürlich stattdessen eine ganze Zahl von Speicher Sie könnten Objekte speichern). Wenn Sie Änderungen vornehmen müssen, müssen Sie eine Sperre für die Parallelität verwenden, und ich bin nicht sicher, wie es große Datenmengen behandelt, weil ich habe noch nie so viel dort zu halten hatte.

ich in der Regel der Dinge wie in dem Application-Objekt.

Wenn die Seiten aufeinander angewiesen sind und sie schreiben sie, könnten Sie die Request-Objekt Seite verwenden. Wahrscheinlich nicht die Antwort, die Sie suchen, aber auf jeden Fall eine der kleinsten im Speicher zu verwenden.

Ich habe in die gleiche Situation in der Vergangenheit laufen und fand eine Schnittstelle die skalierbarste Lösung. Anwendungscache kann die Antwort heute, aber wird es skaliert Ihren Bedürfnissen gerecht zu werden?

Wenn Sie vergrößern müssen, können Sie Cookies finden, oder irgendeine Art von temporären Datenbankspeichern zu dem Trick sein. Einfach eine neue Methode, um Ihre Schnittstelle hinzuzufügen, und stellen Sie die Schnittstelle den „Modus“ von web.config.

wählen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top