Cache-Datenabhängigkeit von der Datei
Die Dateiabhängigkeit bietet einen Mechanismus zum Ungültigmachen der Cache-Daten bei nicht relationalen Datenquellen. Hier können Sie eine Datei-/Ordnerabhängigkeit mit einem Cache-Datenelement verknüpfen. Immer wenn diese Datei/dieser Ordner entfernt oder geändert wird, NCache entfernt sein abhängiges Element aus dem Cache. Der Cache-Bereinigungsthread überwacht die abhängige Datei/den abhängigen Ordner jederzeit auf Änderungen CleanInterval
.
Im Thread zur Cache-Bereinigung: NCache löst in den folgenden Szenarien eine Abhängigkeit aus:
- Die Abhängigkeitsdatei wird entfernt/geändert.
- Der Abhängigkeitsordner wurde entfernt/geändert.
- Die Abhängigkeit wird in der nicht vorhandenen Datei/dem nicht vorhandenen Ordner erstellt, aber im Bereinigungsintervall wird sie erstellt.
Ebenso können mehrere Elemente von einer einzelnen Datei abhängen. Jede Änderung an einer Datei, sei es durch Aktualisieren der Datei oder durch Löschen, führt dazu, dass der Cache die abhängigen Elemente aus dem Cache entfernt. Ebenso kann ein Element in der Dateiabhängigkeit eine Abhängigkeit von mehreren Dateien erstellen.
Sie können auch eine sogenannte Verzögerung vorsehen startAfter
in der Dateiabhängigkeit, die angibt, wann mit der Überwachung der abhängigen Datei auf Änderungen begonnen werden soll. Auf diese Weise, NCache beginnt mit der Überprüfung der abhängigen Datei nach dem startAfter
Zeit ist vergangen.
Cache-Datenabhängigkeit von Dateivoraussetzungen
- Lernen Sie die Standardvoraussetzungen kennen, die für die Arbeit mit allen erforderlich sind NCache Weitere Informationen zu clientseitigen Funktionen finden Sie auf der angegebenen Seite Clientseitige API-Voraussetzungen.
- Einzelheiten zur API finden Sie unter: ICache, CacheItem, CacheItemAttributes, Abhängigkeit, Attribute aktualisieren, Dateiabhängigkeit.
Wichtig
Stellen Sie sicher, dass die NCache Der Dienst hat Zugriff auf den Dateipfad, in dem die Datei abgelegt wird, von der abhängig sein soll.
Dateiabhängigkeit mit Cache-Daten hinzufügen
CacheItem
ist eine benutzerdefinierte Klasse, die von bereitgestellt wird NCache Damit können Sie Daten zum Cache hinzufügen und zusätzliche Metadaten festlegen, die einem Objekt dieser Klasse zugeordnet sind. Diese Metadaten definieren die Eigenschaften des Elements wie Abhängigkeiten, Abläufe und mehr.
Das Speichern Die Methode fügt den Cache-Daten ein neues Element hinzu, während die Insert Die Methode fügt ein neues Element mit Abhängigkeit hinzu und überschreibt die bereits vorhandenen Eigenschaften, wenn das Element bereits im Cache vorhanden ist.
Im folgenden Beispiel handelt es sich bei den im Cache hinzugefügten Daten um den Inhalt der Datei, die im angegebenen Pfad als a abgelegt ist CacheItem
mit Abhängigkeit von der Datei. Jede Änderung in der Datei führt zum Verfall der im Cache vorhandenen abhängigen Daten. Die abgelaufenen Elemente werden dann aus dem Cache entfernt CleanInterval
.
// Precondition: Cache is already connected
// Specify the file path to add dependency on the file
string filepath = "D:\\Products.csv";
// Getting product from file.
Product product = FetchProductFromFile(filepath);
string key = $"Product: {product.ProductID}";
// Create a new cacheItem with product data.
var cacheItem = new CacheItem(product);
// Create the dependency on the file with specified path.
cacheItem.Dependency = new FileDependency(filepath);
// Add the file data in the cache with dependency on the file
cache.Add(key, cacheItem);
Note
Um sicherzustellen, dass der Vorgang ausfallsicher ist, wird empfohlen, alle potenziellen Ausnahmen in Ihrer Anwendung zu behandeln, wie in erläutert Umgang mit Fehlern.
Dateiabhängigkeit mit Verzögerung auslösen
Wenn Sie einem Element eine Abhängigkeit hinzufügen möchten, die nach einer bestimmten Zeit ausgelöst wird, NCache ermöglicht es Ihnen, das Zeitintervall dafür festzulegen.
Das Speichern -Methode fügt dem Cache ein neues Element hinzu, während die Insert Die Methode fügt ein neues Element mit Abhängigkeit hinzu und überschreibt seine Eigenschaften, wenn das Element bereits im Cache vorhanden ist.
Im folgenden Beispiel handelt es sich bei den im Cache hinzugefügten Daten um den Inhalt der Datei, die im angegebenen Pfad mit Abhängigkeit von der Datei abgelegt wird. Die Abhängigkeit wird nach einer Zeitspanne von 20 Minuten ausgelöst. Jede Änderung in der Datei führt zum Verfall der im Cache vorhandenen abhängigen Daten. Die abgelaufenen Elemente werden dann aus dem Cache entfernt CleanInterval
.
// Specify the file path to add dependency on the file
string filepath = "D:\\Products.csv";
//Getting product from file.
Product product = FetchProductFromFile(filepath);
// Creating a unique key for product.
string key = $"Product: {product.ProductID}";
// Create a new cacheItem with product data.
var cacheItem = new CacheItem(product);
// Create the dependency on the file with specified path.
cacheItem.Dependency = new FileDependency(filepath, DateTime.Now.AddMinutes(20));
// Add the file data in the cache with dependency on the file
cache.Insert(key, cacheItem);
Dateiabhängigkeit für mehrere Dateien hinzufügen
Sie können einem Element, das von mehreren Dateien oder Ordnern abhängig ist, auch eine Dateiabhängigkeit hinzufügen. Auf diese Weise kann ein einzelner Artikel mithilfe von von mehreren Artikeln abhängig sein Speichern or Insert Methode. Das Add
-Methode fügt dem Cache ein neues Element hinzu, während die Insert
-Methode fügt ein neues Element mit Abhängigkeit hinzu, und wenn das Element bereits im Cache vorhanden ist, überschreibt es seine Eigenschaften.
Im folgenden Beispiel wird ein Element mit einem Schlüssel hinzugefügt, der von zwei Dateien abhängig ist, die in den angegebenen Pfaden platziert sind.
// Specify the file paths to add dependency on the file
string orderFilePath = "D:\\Orders.csv";
string orderDetailFilePath = "D:\\OrderDetail.csv";
string[] filePaths = { orderFilePath, orderDetailFilePath };
// Getting order from file.
Order order = FetchOrderFromFile(orderFilePath);
string key = $"Order: {order.OrderID}";
// Create a new cacheItem with order data.
var cacheItem = new CacheItem(order);
// Create the dependency on the files with specified path.
cacheItem.Dependency = new FileDependency(filePaths);
// Add the file data in the cache with dependency on the files.
cache.Add(key, cacheItem);
Dateiabhängigkeit zu vorhandenen Cache-Elementen hinzufügen
NCache Bietet Ihnen außerdem die Möglichkeit, Schlüsselabhängigkeiten zu einem bereits im Cache vorhandenen Element hinzuzufügen, ohne es erneut in den Cache einzufügen.
Wichtig
Dieser Ansatz ist vergleichsweise weniger einfach und kosteneffizienter, da Elemente bereits im Cache vorhanden sind.
Verwenden der UpdateAttributes-API
Dies geschieht durch die CacheItemAttribute
Klasse, die die Eigenschaft hat Dependency
entgegen gesetzt werden CacheItem
. Das Attribut wird dann mit dem vorhandenen Schlüssel des Elements verglichen UpdateAttributes
Methode der ICache
Schnittstelle.
Im folgenden Beispiel wird ein Element ohne Abhängigkeit zum Cache hinzugefügt und anschließend die Dateiabhängigkeit für das Element mithilfe von festgelegt UpdateAttributes
Methode. Dazu ist es nicht erforderlich, das Element erneut zum Cache hinzuzufügen.
// Precondition: Cache is already connected
// Specify the file path to add dependency on the file
string filepath = "D:\\Products.csv";
string key = $"Product: 1";
// Create a new cacheItemAttribute.
var attribute = new CacheItemAttributes();
// Create the dependency on the file with specified path.
attribute.Dependency = new FileDependency(filepath);
// update the cacheItem.
cache.UpdateAttributes(key, attribute);
Weitere Informationen
NCache stellt eine Beispielanwendung für die Dateiabhängigkeit bereit GitHub.
Siehe auch
.NETZ: Alachisoft.NCache.Laufzeitabhängigkeiten Namensraum. Namensraum.
Java: com.alachisoft.ncache.Laufzeitabhängigkeiten Namespace.
Node.js: Dateiabhängigkeit Klasse.
Python: ncache.Laufzeitabhängigkeiten Klasse.