• Facebook
  • Twitter
  • Youtube
  • Allineato
  • RSS
  • Docs
  • Confronti
  • Blog
  • Scaricare
  • Contattaci
Scaricare
Mostra/Nascondi sommario

Memorizzazione nella cache delle risposte di ASP.NET Core

ASP.NET Core fornisce Memorizzazione nella cache delle risposte che consente di memorizzare nella cache la risposta del server di una richiesta client per richieste future. NCache agisce come un fornitore di cache di risposta distribuita per superare i limiti della memorizzazione nella cache della memoria locale, garantendo una distribuzione coerente dei contenuti tra web farm con bilanciamento del carico.

Opzioni avanzate di memorizzazione nella cache delle risposte

Note:

Questa funzione è disponibile solo in NCache 5.2 poi.

Quando invalidare le risposte memorizzate nella cache di ASP.NET Core?

La tecnica fornita da NCache per mantenere aggiornati i dati della cache ed eliminare i dati obsoleti è l'invalidazione dei dati. Se una risposta viene memorizzata nella cache e in qualsiasi momento i dati vengono modificati su quella pagina, il che influisce sugli altri dati, la cache è costretta a recuperare nuovi dati. Ad esempio, se si rimuove con successo un articolo dal carrello su un sito di e-commerce, il carrello deve riflettere le modifiche apportate, invalidando così i dati.

Un tag di invalidazione viene aggiunto ai dati osservabili ed è responsabile della rimozione dei dati non validi o obsoleti dalla cache. I nuovi dati vengono quindi recuperati dal database rispetto ai dati invalidati. Con il tag di invalidamento dei dati impostato su True per le pagine di successo nell'aggiornamento dei dati, qualsiasi risposta memorizzata nella cache viene invalidata per ottenere una nuova risposta dalla cache.

Prerequisiti

Prima di utilizzare la memorizzazione nella cache delle risposte di ASP.NET Core con NCache, assicurarsi che siano soddisfatti i seguenti prerequisiti:

  • .NET
  • Installa il pacchetto NuGet seguente nell'applicazione in base al tuo NCache edizione:
    • Enterprise: AspNetCore.ResponseCache.NCache
  • Utilizzare NCachePer i metodi di caching delle risposte, includere il seguente namespace nell'applicazione:
    • Alachisoft.NCache.Risposta nella cache
  • La cache deve essere in esecuzione.
  • L'applicazione deve essere connesso alla cache prima di eseguire l'operazione.
  • Per i dettagli dell'API, fare riferimento a: AggiungiNCacheServizi di caching delle risposte, NCacheConfigurazione.
  • Assicurati che i dati aggiunti lo siano serializzabile.

Configura il servizio di memorizzazione nella cache delle risposte

ASP.NET Core fornisce il proprio middleware per la memorizzazione nella cache delle risposte. Questo deve essere aggiunto alla raccolta di servizi utilizzando AggiungiResponseCaching metodo.

  • Apri Avvio.cs del tuo progetto.

  • Nel ConfigureServices metodo, aggiungi il seguente servizio:

public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCaching();

    // Remaining services here
}
Note:

Per garantire che l'operazione sia a prova di errore, si consiglia di gestire eventuali potenziali eccezioni all'interno dell'applicazione, come spiegato in Gestione dei guasti.

Configurazione NCache come cache distribuita

NCache fornisce metodi personalizzati per configurarsi come cache distribuita per le applicazioni ASP.NET. Ciò richiede solo un nome cache NCache e qualsiasi configurazione opzionale per archiviare il contenuto MVC. Specifichiamo il seguente metodo per la configurazione.

Specificare la configurazione della cache in appsettings.json

Le configurazioni della cache possono essere aggiunte come una sezione separata in appsettings.json della tua domanda. L'esempio seguente aggiunge una sezione NCacheSettings che configura il nome della cache. Puoi cambiare il nome in base alla cache registrata. Dopo aver aggiunto il nome della cache, è possibile fornire il nome della stringa di connessione predefinita che contiene il nome della stringa di connessione per stabilire una connessione con il server per aggiungere la dipendenza del database. Nel caso di più stringhe di connessione per più database, la stringa di connessione predefinita decide quale nome di database utilizzare. Ogni stringa di connessione deve avere un nome come mostrato di seguito.

Consigli

Assicurati che la cache specificata sia in esecuzione.

. . .

"NCacheSettings": {
    "CacheName": "demoCache",
    "EnableLogs": "True",
    "ExceptionsEnabled": "True"
    "DefaultConnectionStringName": "DBServer1"
},
"ConnectionStrings": {
    "DBServer1": "Data Source=20.20.20.40 \\SQLEXPRESS;Database=Northwind;User Id=admin;password=xxxxxxxx"
}

. . .

Una volta specificata la configurazione della cache, NCache i servizi devono essere aggiunti per configurare NCache come cache distribuita nell'applicazione.

  • Apri Avvio.cs del tuo progetto.

  • Nel ConfigureServices metodo, aggiungere i seguenti servizi:

    • Migliori AddOptions.Configure<NCacheConfiguration> il metodo di estensione viene chiamato in fase di esecuzione. È possibile utilizzare questo metodo per aggiungere servizi al contenitore.

    • Migliori AddNCacheResponseCachingServices Il metodo di estensione inizializza le configurazioni relative alla dipendenza dal database e all'invalidazione da appsettings.json.

public void ConfigureServices(IServiceCollection services)
{
    // Read NCache specific configurations from app.settings.json
    services.AddOptions().Configure<NCacheConfiguration>(Configuration.GetSection("NCacheSettings"));

    // Register NCache for response caching with dependency or invalidation
    services.AddNCacheResponseCachingServices();
}

Aggiungi NCache Funzione di supporto per i tag della cache distribuita per la visualizzazione della classe

Come accennato in precedenza, per aggiungere la dipendenza del database con i dati nella cache, un tag <distributed-cache-ncache> viene utilizzato per specificare i parametri. Questo tag è derivato dalla classe helper tag distribuito ed eredita gli attributi di questa classe. Per favore, segui questo documentazione per ottenere informazioni dettagliate sugli attributi che possono essere specificati.

NCache fornisce i seguenti attributi in questa classe per aggiungere la dipendenza:

  • <name>: la chiave dell'elemento presente nella cache come identificatore univoco.

  • <depends-on>: una query che seleziona gli elementi dal database da cui dipende la risposta. Il formato della query contiene il nome del parametro che è una variabile che reindirizza alla risposta memorizzata nella cache. Il nome del parametro può fare distinzione tra maiuscole e minuscole, ma deve essere coerente con il nome del parametro nella risposta memorizzata nella cache. Allo stesso modo per le query con parametri, "@@" viene aggiunto prima del nome del parametro. Ad esempio, se la dipendenza viene aggiunta all'ID persona, il nome del parametro deve essere coerente sia nelle pagine dipendenti che in quelle di risposta.

  • <dependency-type>Definisce il tipo di dipendenza dal database associata, ovvero Oracle o SQL Server.

Note:

Puoi anche aggiungere il nome della stringa di connessione predefinita in questo tag. Nel caso in cui non venga aggiunta alcuna stringa di connessione predefinita, verrà utilizzata la stringa di connessione predefinita menzionata nel file appsettings.json viene utilizzato. <dependency type: "SQLServer" connection-string-name="DBServer">

  • <invalidates>: un flag booleano impostato su True se l'invalidamento viene aggiunto con un attributo. Impostando il flag True, ad ogni modifica che avviene nell'elemento dipendente, tutte le pagine relative a quella chiave vengono invalidate.

Di seguito è riportato un file di esempio che mostra la dipendenza SQL aggiunta con una risposta:

<distributed-cache-ncache
    name="key1"
    depends-on="SELECT ProductID, ProductName FROM dbo.Products WHERE ProductID = @@id"
    connection-string-name="[connection_string_name]"
    dependency-type="SQLServer"
    invalidates="true">
    <div>@DateTime.Now.ToString()</div><br />
</distributed-cache-ncache>

Aggiungi Distributed Cache Tag Helper alla vista

Quando NCache I servizi sono stati configurati per la memorizzazione nella cache delle risposte, ora è possibile specificare il contenuto specifico delle viste del controller che si desidera memorizzare nella cache. ASP.NET Core fornisce Helper tag cache distribuito per aggiungere tag con parametri al file Visualizzazioni che memorizzerà nella cache il contenuto contrassegnato nella cache configurata.

L'esempio seguente aggiunge il <distributed-cache> taggare il contenuto in Visualizzazioni -> Informazioni su.cshtml con parametri variabili. Dopo aver aggiornato l'applicazione, il contenuto, "Elemento normale" cambierà in base DateTime.Now, mentre il contenuto contrassegnato rimarrà statico mentre viene memorizzato nella cache.

  • Migliori expires-after L'attributo specifica la scadenza assoluta per il contenuto. Questo elemento verrà rimosso dalla cache una volta trascorsi 10 secondi. Tuttavia, se l'applicazione viene aggiornata, gli elementi vengono ricaricati nella cache.

  • Migliori name attributo è l'identificatore univoco per la cache per ogni istanza dell'helper tag.

  • Migliori vary-by L'attributo mantiene l'elemento nella cache finché la stringa di query nell'URL non è la stessa per il valore specificato in questo tag.

Per maggiori dettagli sui parametri, fare riferimento a Documentazione Microsoft per Tag Helpers prima di procedere.

Una volta eseguita l'applicazione, è possibile monitorare le statistiche della cache tramite il file NCache Centro Direzionale/NCache Monitorare per NCache Enterprise.

@{
ViewData["Title"] = "About";
}

<h2>@ViewData["Title"]</h2>
<h3>@ViewData["Message"]</h3>

<p> The value for this item will change every time the application is refreshed.</p>
<div>@DateTime.Now.ToString()</div><br />

<p>The value for this item will be static and remain in the cache forever, unless the cache is cleared.</p>
<distributed-cache name="Key:1" >
    <div>@DateTime.Now.ToString()</div><br />
</distributed-cache>

<p>The value for this item will be static upon refreshing the application, but it will expire after 10 seconds.</p>
<distributed-cache name="Key:2" expires-after ="TimeSpan.FromSeconds(10)">
    <div>@DateTime.Now.ToString()</div><br />
</distributed-cache>

<p>The value for this item will be static and will only be removed from cache if the "vary-by" value is changed.</p>
<distributed-cache name="Key:3" vary-by ="test">
    <div>@DateTime.Now.ToString()</div><br />
</distributed-cache>

Risorse addizionali

NCache fornisce un'applicazione di esempio per la memorizzazione nella cache delle risposte GitHub.

Vedere anche

.NETTO: Alachisoft.NCache.Risposta nella cache spazio dei nomi.

Contattaci

PHONE

+1 214-619-2601   (US)

+44 20 7993 8327   (UK)

 
E-MAIL

sales@alachisoft.com

support@alachisoft.com

NCache
  • Confronto edizione
  • NCache Architettura
  • Parametri di riferimento
Scaricare
Prezzi
Prova Parco giochi

Distribuzioni
  • Cloud (SaaS e software)
  • On-Locale
  • kubernetes
  • docker
Casi d'uso tecnici
  • Sessioni ASP.NET
  • Sessioni ASP.NET Core
  • Messaggistica Pub/Sub
  • SignalR in tempo reale per ASP.NET
  • Internet of Things (IoT)
  • Database NoSQL
  • Streaming Processing
  • Microservices
Risorse
  • Articoli di riviste
  • Articoli di terze parti
  • Articoli
  • Video
  • Fogli bianchi
  • Spettacoli
  • trattativa
  • Blog
  • Docs
Casi di studio dei clienti
  • Testimonianze
  • Clienti
Assistenza
  • Pianificare un demo
  • Forum (Google Gruppi)
  • Consigli
Azienda
  • Leadership
  • Partner
  • News
  • Eventi
  • Lavora con noi
Contattaci

  • IngleseCinese (semplificato)FranceseTedescoItalianoGiapponeseCoreanoPortogheseCorsi

  • Contattaci
  •  
  • Mappa del sito
  •  
  • Termini d’uso
  •  
  • Informativa privacy
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.
Torna in alto