IDistributedCache Provider per ASP.NET Core

Migliora le tue app ASP.NET

Il framework ASP.NET tradizionale si basava su ASP.NET Cache, che era limitata a un singolo server (InProc) e non supportava ambienti multi-server. Inoltre, non consentiva l'integrazione con cache distribuite di terze parti. Di conseguenza, gli sviluppatori erano costretti ad affidarsi a meccanismi di caching autonomi e inefficienti.

Microsoft ha risolto queste sfide con ASP.NET Core, introducendo il IDistributedCache, interfaccia per soluzioni di caching multi-server scalabili. NCache è facile da integrare con IDistributedCache, che conferisce alle tue applicazioni ASP.NET Core prestazioni elevate, livello di memorizzazione nella cache ricco di funzionalità.

 

Che cos'è IDistributedCache?

L'interfaccia IDistributedCache fornisce un meccanismo di memorizzazione nella cache centralizzato che funziona su più server, rendendolo ideale per cloud-native, containerizzatoe basato su microservizi architetture. Mentre l'interfaccia standard definisce il contratto, NCache fornisce l'implementazione distribuita effettiva che garantisce la persistenza dei dati anche dopo i riavvii del server e la scalabilità lineare in base al traffico.

using Microsoft.Extensions.Caching.Distributed;
using System.Threading;
using System.Threading.Tasks;

public interface IDistributedCache
{
    byte[]? Get(string key);
    Task<byte[]?> GetAsync(string key, CancellationToken token = default);
    void Refresh(string key);
    Task RefreshAsync(string key, CancellationToken token = default);
    void Remove(string key);
    Task RemoveAsync(string key, CancellationToken token = default);
    void Set(string key, byte[] value, DistributedCacheEntryOptions options);
    Task SetAsync(string key, byte[] value, DistributedCacheEntryOptions options, CancellationToken token = default);
}
 

Perché Scegliere La NCache per IDistributedCache?

Molte soluzioni di caching, come MemoriaDistribuitaCache, sono limitati a un singolo server, rendendoli inadatti per applicazioni che necessitano modulabilità and elevata disponibilità. NCache, d'altro canto, è una vera e propria soluzione di caching distribuito, progettata specificamente per le applicazioni .NET, che garantisce migliori prestazioni e scalabilità.

Vantaggi principali di NCache

  • 100% nativo .NET - Completamente compatibile e ottimizzato per Applicazioni .NET.
  • Alte prestazioni e scalabilità - Consente il recupero rapido dei dati e supporta una scalabilità orizzontale fluida.
  • Funzionalità di caching avanzate - Supporta query SQL, messaggistica pub/sub e sincronizzazione della cache.
  • Elevata disponibilità e affidabilità - Garantisce la coerenza dei dati grazie al supporto failover integrato.
  • Serializzazione ottimizzata - Riduce la latenza e migliora le prestazioni tramite una serializzazione efficiente.

Seamless NCache Integrazione con IDistributedCache

Integrazione NCache con la tua applicazione ASP.NET Core è semplice. Puoi collegarti NCache senza modificare la logica dell'applicazione esistente. Ciò consente di passare senza problemi dalla memorizzazione nella cache in memoria a una cache distribuita ad alta disponibilità.

 

Configurazione NCache come il tuo provider IDistributedCache

  • Passo 1: Installa il pacchetto NuGet Esegui il comando seguente nella console di Gestione pacchetti per installare il provider IDistributedCache.
    Install-Package Alachisoft.NCache.DistributedCache
  • Passo 2: Registrati NCache in Programma.cs Registrati NCache nel file di avvio dell'applicazione ASP.NET Core, come mostrato di seguito:
var builder = WebApplication.CreateBuilder(args);
// Register NCache as the IDistributedCache provider
// Benefits: Multi-server scalability, High Availability, and 100% Native .NET

builder.Services.AddNCacheDistributedCache(options =>
{
    options.CacheName = builder.Configuration["NCache:CacheName"];
	 
   // NCache settings can be dynamically adjusted in appsettings.json
   // ensuring zero-downtime configuration changes
});

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

In alternativa, puoi configurare NCache nella appsettings.json archivia e carica le impostazioni in modo dinamico:

{
    "NCacheSettings": {
        "CacheName": "myCache",
        "EnableLogs": true,
        "EnableStatistics": true
    }
}

Ciò garantisce scalabilità, tolleranza agli errori ed elevata disponibilità negli ambienti di produzione.

 

NCache API: molto più ricca di IDistributedCache

Migliori IDistributedCache L'interfaccia fornisce un archivio chiave-valore di base, utile ma piuttosto limitato nelle funzionalità. NCache va ben oltre offrendo un'API di caching estesa e ad alte prestazioni che consente un caching potente e distribuito per le applicazioni aziendali.

Caratteristica Standard IDistributedCache (Basic) NCache API (Impresa)
Flessibilità delle query Solo ricerca chiave-valore Query SQL e LINQ
Organizzazione dei dati Struttura piatta Tag e tag denominati
Integrità dei dati Articoli indipendenti Dipendenze della cache (relazioni)
Messaggistica in tempo reale Non supportato Messaggistica Pub/Sub
Sincronizzazione del database È richiesta la codifica manuale Lettura e scrittura automatiche
Disponibilità dei dati Vuoto all'avvio Caricatore di cache e aggiornamento
 

Principali vantaggi di NCache API

  • Tags, Tag con nome - Organizza in modo efficiente i dati memorizzati nella cache con meccanismi di tagging flessibili.
  • Query SQL nella cache - Recupera i dati in modo efficiente utilizzando LINQ o query basate su SQL.
  • Relazioni dati nella cache - Mantenere le dipendenze degli oggetti per evitare dati obsoleti.
  • Messaggistica Pub/Sub - Abilita la comunicazione in tempo reale basata sugli eventi tra le applicazioni.
  • Read-through e write-through - Automatizza il popolamento della cache e gli aggiornamenti del database.
  • Caricatore/Aggiornamento - Precarica i dati di riferimento nella cache all'avvio e aggiornali periodicamente, assicurandoti che i dati utilizzati di frequente siano sempre disponibili e aggiornati.

Utilizzando il NCache API, le organizzazioni possono superare i limiti di IDistributedCache, ottenendo prestazioni migliorate, flessibilità e caching di livello aziendale per le loro applicazioni .NET.

 

Inizia con NCache Oggi!

Pronti a ottimizzare le vostre applicazioni ASP.NET Core con la cache distribuita ad alte prestazioni? Scoprite di più NCache e sfruttarne le potenti funzionalità.

Domande frequenti (FAQ)

No. Da allora NCache implementa l'interfaccia standard IDistributedCache, è sufficiente modificare la configurazione in Program.cs. Non sono richieste modifiche alla logica di business.

NCache Memorizza i dati in memoria (RAM), una soluzione significativamente più veloce rispetto all'archiviazione su disco di SQL Server. Elimina inoltre il sovraccarico di serializzazione e la latenza di rete associati alla memorizzazione nella cache basata su SQL.

Sì. Puoi continuare a utilizzare metodi standard come SetAsync, GetAsync e RemoveAsync. Tuttavia, NCache consente inoltre di eseguire il cast dell'istanza della cache su ICache per sbloccare funzionalità avanzate come tag e query SQL.

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