Cache di ASP.NET Core - Una panoramica

Le moderne applicazioni web richiedono prestazioni elevate e scalabilità. Con la crescita delle applicazioni, le frequenti query al database possono rallentare il sistema, causando colli di bottiglia nelle prestazioni e una riduzione della reattività.

ASP.NET Core è un framework potente per la creazione di applicazioni web scalabili, ma funziona bene se combinato con un soluzione di caching distribuito come NCacheLa memorizzazione nella cache dei dati a cui si accede frequentemente riduce il carico del database, aumenta il tempo di risposta e migliora la scalabilità.

Discutiamo i vantaggi della memorizzazione nella cache distribuita, i suoi casi d'uso nel mondo reale e come integrarla NCache con applicazioni ASP.NET Core.

 

Che cos'è la cache distribuita in ASP.NET Core?

La memorizzazione nella cache distribuita memorizza i dati utilizzati di frequente su più server, rendendoli scalabili e affidabili archivio dati in memoriaCiò aiuta a ridurre la latenza, minimizza le query del database e migliora la reattività dell'applicazione. NCache garantisce tempi di risposta inferiori al millisecondo ed è stato testato per gestire oltre 2 milioni di richieste al secondo in un ambiente cluster.

Caratteristica Vantaggi tecnici e aziendali
Prestazione migliorata Raggiunge tempi di risposta inferiori al millisecondo memorizzando i dati nella cache in memoria, riducendo drasticamente i costosi spostamenti del database e la latenza della rete.
Scalabilità lineare Gestisce carichi di transazioni crescenti aggiungendo più nodi server al cluster in fase di esecuzione, garantendo prestazioni costanti per qualsiasi numero di utenti.
Alta disponibilità Utilizza un cluster dinamico peer-to-peer auto-riparante per garantire il 100% di uptime e nessun singolo punto di errore, anche durante la manutenzione del server o arresti anomali.
Affidabilità dei dati Mantiene l'integrità dei dati tramite topologie di replica multi-nodo e mantiene la cache sincronizzata con il backend tramite dipendenza dal database.
 

Impostare NCache per ASP.NET Core

Segui questi passaggi per installare e configurare NCache per la tua applicazione ASP.NET Core.

Passo 1: installazione NCache

Installazione NCache server

Installazione NCache Server su due server dal sito web ufficiale.

Installazione NCache SDK del cliente

Per connettere un'applicazione ASP.NET Core al server della cache, installare il NCache SDK del cliente utilizzando NuGet:

Install-Package Alachisoft.NCache.SDK

Garantire il tuo impostazioni di rete e firewall consentire la comunicazione tra l'applicazione e il server della cache.

Passaggio 2: creazione di una cache in cluster

A cache raggruppata migliora la scalabilità e garantisce un'elevata disponibilità distribuendo i dati memorizzati nella cache su più server.

  1. Verifica la rete Connettività - Assicurarsi che i nodi della cache possano comunicare tramite le porte di rete designate.
  2. Configurazione NCache - Usa il NCache Centro di gestione or PowerShell per creare un'istanza di cache in cluster.
  3. Aggiungi nodi cache - Aggiungere più server per migliorare prestazioni e affidabilità.
  4. Monitorare lo stato della cache - Traccia la sincronizzazione e la disponibilità dei nodi tramite NCachestrumenti di monitoraggio.

Passaggio 3: installazione e configurazione del client .NET

Dopo l'installazione NCacheConfigura la tua applicazione ASP.NET Core per connettersi alla cache.

Program.cs (Modifica)

using Alachisoft.NCache.Client;

var builder = WebApplication.CreateBuilder(args);
builder.Services.AddSingleton<ICache>(_ => CacheManager.GetCache("demoCache"));

var app = builder.Build();
app.Run();
 

utilizzando NCache in ASP.NET Core

1. Recupero dei dati dalla cache

Questo metodo recupera più prodotti dalla cache utilizzando i relativi ID prodotto in blocco, riducendo il numero di chiamate al server della cache.

public Dictionary<string, Product> RetrieveProducts(List<int> productIds)
{
    List<string> cacheKeys = productIds.Select(id => $"Product:{id}").ToList();
    Dictionary<string, Product> cachedProducts = _cache.GetBulk<Product>(cacheKeys);
    return cachedProducts;
}

2. Aggiunta di dati alla cache

Questo metodo tenta di recuperare un prodotto dalla cache; se non esiste, lo recupera dal database e lo aggiunge alla cache con una scadenza.

public Product GetProduct(int productId)
{
    string cacheKey = $"Product:{productId}";
    Product product = _cache.Get<Product>(cacheKey);

    if (product == null)
    {
        product = FetchProductFromDB(productId);
        var cacheItem = new CacheItem(product)
        {
            Expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(10))
        };
        _cache.Add(cacheKey, cacheItem);
    }
    
    return product;
}

3. Aggiornamento/inserimento dei dati nella cache

Questo metodo aggiorna prima il prodotto nel database e poi inserisce o aggiorna il prodotto memorizzato nella cache con una scadenza specificata.

public void UpdateProduct(int productId, Product updatedProduct)
{
    // Update the database first
    UpdateProductInDB(productId, updatedProduct);
    
    // Update the cache after successful database update
    string cacheKey = $"Product:{productId}";
    var cacheItem = new CacheItem(updatedProduct)
    {
        Expiration = new Expiration(ExpirationType.Absolute, TimeSpan.FromMinutes(10))
    };
    _cache.Insert(cacheKey, cacheItem);
}

4. Rimozione dei dati memorizzati nella cache

Questo metodo rimuove più voci dalla cache contemporaneamente utilizzando le relative chiavi di cache.

public void RemoveData(List<string> keys)
{
    _cache.RemoveBulk(keys);
}
 

Quali sono le funzionalità avanzate di NCache?

NCache offre funzionalità di memorizzazione nella cache aggiuntive a livello aziendale per migliorare le prestazioni:

 

Inizia con NCache Oggi!

Ottimizza le tue applicazioni ASP.NET Core con NCache! Riduci il carico del database, migliora le prestazioni e scala senza sforzo.

Domande frequenti (FAQ)

NCache Migliora le prestazioni memorizzando i dati a cui si accede frequentemente in una cache distribuita in memoria. Ciò riduce drasticamente il carico del database e la latenza di rete, consentendo tempi di risposta inferiori al millisecondo rispetto al recupero tradizionale dei dati dal database.

A differenza della memorizzazione nella cache InProc, che è limitata a un singolo server, NCache Fornisce un'architettura distribuita che condivide i dati nell'intera web farm. Questo elimina il singolo punto di errore e consente una scalabilità lineare all'aumentare del traffico applicativo.

Sì. Le serrature scorrevoli portatili e i catenacci a superficie possono essere usati per mettere in sicurezza una porta a scomparsa dall'esterno. Alcuni kit con catena di sicurezza consentono anche il bloccaggio esterno con chiave o manopola girevole. NCache Fornisce un provider di stato di sessione distribuito ad alte prestazioni per ASP.NET. Garantisce che i dati di sessione rimangano disponibili e coerenti su tutti i nodi del server, garantendo un'elevata disponibilità anche in caso di inattività di un server web.

NCache include funzionalità di livello aziendale quali la ricerca di tipo SQL, la messaggistica Pub/Sub per il coordinamento degli eventi e la dipendenza dal database per garantire che la cache sia sempre sincronizzata con la sorgente dati back-end.

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.