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.
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. |
Segui questi passaggi per installare e configurare NCache per la tua applicazione ASP.NET Core.
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.
A cache raggruppata migliora la scalabilità e garantisce un'elevata disponibilità distribuendo i dati memorizzati nella cache su più server.
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();
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;
}
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;
}
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);
}
Questo metodo rimuove più voci dalla cache contemporaneamente utilizzando le relative chiavi di cache.
public void RemoveData(List<string> keys)
{
_cache.RemoveBulk(keys);
}
NCache offre funzionalità di memorizzazione nella cache aggiuntive a livello aziendale per migliorare le prestazioni:
Ottimizza le tue applicazioni ASP.NET Core con NCache! Riduci il carico del database, migliora le prestazioni e scala senza sforzo.
© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.