CRUD-Operationen: Ein Überblick
NCache speichert Daten als Schlüssel-Wert-Paare, dh eindeutige Kennungen (Schlüssel) werden gegen Daten (Wert) gespeichert. Ähnlich wie bei einer Key-Value-Datenbank, NCache Außerdem speichert, ruft und verwaltet es Daten über CRUD-Operationen. In diesem Zusammenhang NCache bietet einen vielfältigen Satz von CRUD-APIs zum synchronen oder asynchronen Zwischenspeichern von atomaren oder Massendaten. Hier geben wir Ihnen einen Überblick NCache-unterstützte grundlegende CRUD-Operationen: Hinzufügen, einfügen, Erhalten Sie und Entfernen.
Bevor Sie fortfahren, müssen Sie wissen, was im Cache gespeichert werden soll. Neben den herkömmlichen stringbasierten Werten NCache ermöglicht das Hinzufügen primitive Datentypen, benutzerdefinierte Objekte, Daten mit Metadaten (CacheItem), Datenstrukturen und JSON-Daten.
Jedes dem Cache hinzugefügte Objekt muss serialisierbar sein. NCache behandelt Binär- und JSON-Serialisierung basierend auf Ihrem Geschäftsformat. Wenn Sie keine native binäre Serialisierung durchführen können, NCache bietet auch ein eigenes an Kompaktes Serialisierungs-Framework. Für den JSON-Speicher NCache übernimmt die Serialisierung für die bereitgestellten Objekte. Alternativ können Sie hinzufügen NCache bereitgestellte JSON-serialisierte Objekte, das die Unterstützung für plattformübergreifende und mehrsprachige Anwendungen ermöglicht.
Operationstypen
NCache ermöglicht CRUD-Operationen für einzelne oder Massenartikel. Unterdessen sind die unterstützten Betriebsmodi synchron und asynchron. Hier erläutern wir kurz die Betriebsarten und Modi in NCache.
Atomare Operationen
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Wir kategorisieren alle Operationen, die an einem einzelnen Schlüssel-Wert-Paar ausgeführt werden, als atomare Operationen. Daher erfordern solche Vorgänge einen einzigen Cache-Aufruf. Das Verhalten von Atomen hinzufügen, einfügen, entfernen und bekommen Operationen werden in späteren Abschnitten besprochen.
Massenoperationen
Note
Diese Funktion ist auch in verfügbar NCache Professional.
Mit Massenvorgängen können Sie jeden CRUD-Vorgang für mehrere Elemente über einen einzigen Cache-Aufruf ausführen. Obwohl eine Massenoperation als einzelne Operation ausgeführt wird, wird das Fehlschlagen von Operationen einzeln behandelt. Sie wurden speziell entwickelt, um die Leistung zu verbessern. Beispielsweise ist das Abrufen von 100 Cache-Elementen in einem einzigen Massenvorgang viel schneller als das Abrufen von ihnen durch 100 atomare Aufrufe. Auf diese Weise verbessert sich die Leistung aufgrund reduzierter Netzwerkfahrten zum Remote-Server.
Massenoperationen sind besonders nützlich, um gecachte Daten beim Start einer Anwendung massenhaft abzurufen oder ein Abfrageergebnis massenhaft in den Cache einzufügen.
Synchrone Operationen
Note
Diese Funktion ist auch in verfügbar NCache Professional.
NCache ermöglicht das synchrone Hinzufügen eines atomaren Elements oder einer Menge von Elementen. Da synchrone Operationen als blockierender Aufruf auftreten, muss der Client auf die Antwort des Servers warten, um weitere Operationen auszuführen. Die Steuerung kehrt zur Anwendung zurück, sobald die Operation stattfindet.
Obwohl der Client auf den Abschluss des Vorgangs warten muss, ermöglichen Synchronisierungsvorgänge die Rückgabe des Erfolgs-/Fehlerstatus des Vorgangs, wenn die Steuerung an den Benutzer zurückgegeben wird. Ein solcher Vorgang kann aufgrund eines Verbindungsfehlers mit dem Cache oder wegen interner Systemfehler fehlschlagen. Dieser Prozess bietet Anwendungen die Kontrolle, um alle Fehlerszenarien zu handhaben, sobald sie auftreten. Daher sind diese Vorgänge unerlässlich, wenn Sie kritische Daten verarbeiten.
Darüber hinaus sind synchrone Vorgänge sequentiell. Dies ist nützlich, wenn Ihre Vorgänge voneinander abhängig sind. Beispielsweise fügt eine E-Commerce-Site synchron nur zwei Stunden lang Artikel hinzu, die im Flash-Sale sind, und ruft später die Artikel ab, für die es einen Flash-Sale gibt. Beim Abrufen der zwischengespeicherten Artikel zum Verkauf kann ein Fehler vermieden werden, wenn sichergestellt wird, dass diese Artikel zuerst erfolgreich zum Cache hinzugefügt wurden. Sofern nicht anders angegeben, sind die grundlegenden CRUD-Operationen standardmäßig synchron.
Asynchrone Operationen
Asynchrone Operationen finden im Hintergrund statt, sodass der Client nicht auf die Antwort des Servers warten muss, um weitere Operationen auszuführen. Die Liste der Aktionen, die im Cache ausgeführt werden sollen, wird auf der Clientseite in einer Warteschlange verwaltet, und ein dedizierter Hintergrundthread sendet sie weiterhin an die Serverseite. Die Steuerung kehrt unmittelbar nach dem Einreihen eines Vorgangs in die Warteschlange an die Anwendung zurück. Dies erhöht die allgemeine Reaktionsfähigkeit der Anwendung.
Asynchrone Vorgänge können nützlich sein, wenn die Reaktionszeit für Ihre Anwendung von entscheidender Bedeutung ist und ein Ausfall von Vorgängen die Funktionsfähigkeit Ihrer Anwendung nicht beeinträchtigt.
Da asynchrone Vorgänge nicht über das Scheitern oder den Erfolg der Vorgänge selbst benachrichtigen, werden die asynchronen Aufrufe ausgeführt NCache ein Objekt von zurückgeben Aufgabenklasse Dies kann weiter verwendet werden, um den Status des Vorgangs abzurufen. In diesem Zusammenhang werden von der Task-Klasse die folgenden Statusflags bereitgestellt, um den Erfolg oder Misserfolg der durchgeführten Operation anzuzeigen.
- Abgeschlossen: Benachrichtigt, wenn der angegebene Vorgang erfolgreich im Cache ausgeführt wird.
- IsFaulted: Benachrichtigt, wenn der angegebene Vorgang auftritt, aber fehlschlägt.
- Ist storniert: Benachrichtigt, wenn der angegebene Vorgang aus einem internen Grund abgebrochen wird.
Grundlegendes CRUD im verteilten Cache
Sie können mit dem Cache interagieren, sobald Sie dies getan haben Holen Sie sich eine Instanz eines Caches. Sehen wir uns die Funktionsweise und das Verhalten grundlegender CRUD-Operationen an, die von unterstützt werden NCache.
Hinzufügen/Einfügen
Elemente können mit zum Cache hinzugefügt werden Speichern or Insert Methode. Allerdings unterscheiden sich beide Vorgänge im Verhalten. Add
fügt dem Cache nur dann erfolgreich ein Element mit einem bestimmten Schlüssel hinzu, wenn der angegebene Schlüssel nicht im Cache vorhanden ist, und löst andernfalls eine Ausnahme aus. Angenommen, Sie möchten verhindern, dass mehrere Clients gleichzeitig ein Element zum Cache hinzufügen. Dann können Sie die verwenden Add
Methode zur Benachrichtigung über einen Vorgangsfehler, wenn ein Client versucht, ein bereits im Cache vorhandenes Element hinzuzufügen.
Auf der anderen Seite, Insert
funktioniert auch als Update-Vorgang. Wenn Sie ein Element über die hinzufügen Insert
-Methode und der angegebene Schlüssel bereits im Cache vorhanden ist, wird das vorhandene Element im Cache ersetzt. Neben dem Hinzufügen von Elementen werden Elemente im Cache sicher aktualisiert.
Der einfachste Fall besteht darin, ein Element direkt zum Cache hinzuzufügen oder einzufügen, indem Sie einen Schlüssel und einen Wert angeben. Diese Methoden verfügen jedoch über mehrere Überladungen, mit denen Sie Elemente mit erweiterten Optionen zum Cache hinzufügen/einfügen können. Die relevanten Anwendungsfälle und Verhaltensweisen von Add/Insert werden unten besprochen.
- Datenmenge hinzufügen: Eine Sammlung von Daten kann gleichzeitig mit dem Cache hinzugefügt werden
AddBulk
/InsertBulk
Methode.AddBulk
kann verwendet werden, wenn Sie ausdrücklich Benachrichtigungen über Fehler beim Hinzufügen von Elementen mit vorhandenen Schlüsseln anfordern. Dabei werden die fehlgeschlagenen Operationen einzeln hervorgehoben, indem ein Wörterbuch mit Angabe der entsprechenden Schlüssel mit Ausnahme der Anwendung zurückgegeben wird. Wenn beispielsweise eine Menge von 100 Elementen zum Cache hinzugefügt wird und 20 dieser Elemente bereits im Cache vorhanden sind, werden die restlichen 80 Elemente dem Cache hinzugefügt. Die vorhandenen 20 Elemente werden als Wörterbuch der fehlgeschlagenen Operationen an die Anwendung zurückgegeben.
Falls Sie Fehler vermeiden möchten, während Sie mehrere Elemente hinzufügen, um die vorhandenen Elemente zu aktualisieren, können Sie die verwenden InsertBulk
Methode. Es überschreibt die vorhandenen Elemente im Cache und gibt ein Wörterbuch mit Schlüsseln zurück, die aus irgendeinem Grund nicht hinzugefügt/aktualisiert werden konnten.
Daten asynchron hinzufügen: Elemente können dem Cache asynchron hinzugefügt/eingefügt werden, wenn Sie die Effizienz der Clientanwendung verbessern möchten.
AddAsync
/InsertAsync
Methoden fügen die Elemente im Hintergrund hinzu und geben das Task-Objekt zurück, sobald der Vorgang abgeschlossen ist. Der Client kann die in genannten Statusflags überprüfen Asynchrone Operationen um den Erfolg oder Misserfolg des Add-/Insert-Vorgangs ohne zusätzlichen Code zu überprüfen.Daten mit Abhängigkeiten hinzufügen: Sie können Elemente mit Abhängigkeiten zum Cache hinzufügen/einfügen. Da Cache-Daten temporär sind, müssen bestimmte Daten möglicherweise basierend auf benutzerspezifischen Kriterien aus dem Cache entfernt werden. In diesem Fall, NCache bietet verschiedene Möglichkeiten, zwischengespeicherte Daten ungültig zu machen, indem Sie beim Hinzufügen/Einfügen von Elementen Abhängigkeiten festlegen können. Insbesondere können Sie Abhängigkeiten basierend auf festlegen Zeit, Cache-Daten, Datenbankund eine externe Quelle, um bestimmte Elemente gemäß Ihren Anwendungsanforderungen ungültig zu machen und schließlich zu entfernen.
Gleichzeitiges Schreiben: Sie können mit Elemente in den Cache einfügen Sperrung zur Steuerung des gleichzeitigen Zugriffs bei Multithread- oder Multi-Client-Anwendungen. Es hilft, die Datenintegrität aufrechtzuerhalten, wenn gleichzeitige Aktualisierungsvorgänge im Cache durchgeführt werden. Sie können ein Element entweder exklusiv sperren oder an einer Version des Elements arbeiten, die dem Cache hinzugefügt wurde. Die Elementversion wird vom Cache für jedes Element im Cache verwaltet und bei jedem Aktualisierungsvorgang automatisch erhöht.
Schreiben Sie in die Datenquelle: In fortgeschrittenen Fällen, wenn die Datenquelle konfiguriert ist, werden während des Add-/Einfügevorgangs Daten sowohl im Cache als auch in der Datenquelle hinzugefügt/aktualisiert.
Ablauf der Anforderungsausführung: Wenn ein Add-/Insert-Vorgang auftritt, folgt der zugrunde liegende Anforderungsausführungsprozess den folgenden Schritten: Serialisierung, Verschlüsselung und Komprimierung. Zunächst werden die bereitgestellten Daten serialisiert. Anschließend wird es auf der Client-Seite verschlüsselt, wenn die Verschlüsselung konfiguriert ist. Da die über das Netzwerk übertragenen Daten leicht abgefangen werden können, können Sie Ihre sensiblen Daten mit verschlüsseln NCache Datenverschlüsselungsfunktion um es vor Sicherheitsrisiken zu schützen. Abschließend werden die verschlüsselten Daten komprimiert, wenn die Komprimierung aktiviert ist. Da die verfügbare Bandbreite und der Speicher knapp sind, NCache Datenkomprimierungsfunktion ermöglicht es Ihnen, den Netzwerkverkehr und den Speicherverbrauch erheblich zu reduzieren. Letztendlich werden Ihre Schreibvorgänge schneller ausgeführt.
Erhalten Sie
In erster Linie wird ein Cache basierend auf seiner Fähigkeit, Daten abzurufen, als effektiv angesehen. Ein Element kann mithilfe von aus dem Cache abgerufen werden Get
Vorgang durch Angabe des Schlüssels, unter dem das Element gespeichert wurde. Falls das angegebene Element nicht im Cache vorhanden ist, wird ohne Ausnahme ein Nullwert zurückgegeben.
Holen Sie sich eine Menge Artikel: Mit können mehrere Elemente gleichzeitig aus dem Cache abgerufen werden
GetBulk
Methode. Es ruft die im Cache gefundenen Elemente in Form eines Schlüssel-Wert-Wörterbuchs ab. Es wird keine Ausnahme ausgelöst, wenn einer der angegebenen Schlüssel nicht im Cache vorhanden ist.Überprüfen Sie die Existenz von Artikeln: Da der Cache flüchtig ist, müssen Sie möglicherweise wissen, ob ein Element im Cache vorhanden ist oder nicht. Die Existenz eines Artikels kann anhand der ermittelt werden NCache vorausgesetzt
Contains
Methode. Darüber hinaus kann die Existenz mehrerer Elemente durch die verifiziert werdenContainsBulk
Methode.Aus Datenquelle abrufen: In fortgeschrittenen Fällen, wenn die Datenquelle konfiguriert ist, werden Daten aus der Datenquelle abgerufen, wenn sie nicht im Cache vorhanden sind. Weitere Einzelheiten finden Sie im Kapitel Anbieter von Datenquellen.
Entfernen
Um veraltete Daten und Cache-Speicher effizient zu verwalten, müssen Sie möglicherweise Daten explizit entfernen. Sie können Elemente ganz einfach aus dem Cache entfernen, indem Sie die verwenden Remove
Methode. Wenn der angegebene Schlüssel nicht im Cache vorhanden ist, wird ein Nullwert zurückgegeben. Sie können das entfernte Element auch zur weiteren Bearbeitung entsprechend Ihren Anwendungsanforderungen erhalten. Allerdings sind die Kosten für das Abholen der Gegenstände beim Abtransport unvermeidlich. Daher wird die vorherige Vorgehensweise empfohlen, wenn Sie die Gegenstände beim Entfernen nicht benötigen.
Massenartikel entfernen: Eine Sammlung von Elementen kann gleichzeitig mit aus dem Cache entfernt werden
RemoveBulk
Methode. Sie können die erfolgreich entfernten Elemente auch in einem Wörterbuch abrufen. Je nach Größe der beim Entfernen abgerufenen Objekte kann es jedoch langsam sein. Daher wird empfohlen, die Elemente einfach zu entfernen, da es effizienter ist, wenn Sie die entfernten Elemente nicht verarbeiten müssen.Elemente asynchron entfernen: Sie können atomare Daten mithilfe von asynchron aus dem Cache entfernen
RemoveAsync
Methode. Das Element wird im Hintergrund entfernt und nach Abschluss des Vorgangs erhalten Sie den Status. Falls Sie überprüfen möchten, ob dieses Element erfolgreich entfernt wurde oder nicht, können Sie das bereitgestellte verwenden Statusflags für asynchrone Vorgänge.Aus Datenquelle entfernen: In fortgeschrittenen Fällen, wenn die Datenquelle konfiguriert ist, erfolgt die Datenentfernung sowohl im Cache als auch in der Datenquelle. Weitere Einzelheiten finden Sie im Kapitel Anbieter von Datenquellen.
Note
Im Gegensatz zu Remove
und RemoveBulk
, RemoveAsync
gibt die entfernten Objekte nicht an die Anwendung zurück.
In diesem Abschnitt
Daten zum Cache hinzufügen
Erklärt, wie Daten zum Cache hinzugefügt werden.
Vorhandene Daten im Cache aktualisieren
Erklärt, wie im Cache vorhandene Daten aktualisiert werden.
Daten aus dem Cache entfernen
Erklärt, wie Daten aus dem Cache entfernt werden.
Vorhandene Cache-Daten abrufen
Erklärt, wie Daten aus dem Cache abgerufen werden.