NCache Funzionalità di memorizzazione nella cache distribuita

Dipendenza dalla cache per la gestione delle relazioni

NCache dispone di una funzione di dipendenza dalla cache che consente di gestire i dati relazionali con relazioni uno-a-uno, uno-molti e molti-a-molti tra gli elementi di dati. La dipendenza dalla cache consente di preservare l'integrità dei dati nella cache distribuita.

La dipendenza dalla cache consente di specificare che un elemento memorizzato nella cache dipende da un altro elemento memorizzato nella cache. Quindi, se il secondo elemento memorizzato nella cache viene aggiornato o rimosso da qualsiasi applicazione, il primo elemento che dipendeva da esso viene automaticamente rimosso dalla cache da NCache. Cache Dependency ti consente anche di specificare dipendenze multilivello.

Per saperne di più, leggi dipendenze della cache.

Dipendenza dalla cache

Sincronizzazione database

NCache fornisce una funzione che sincronizza automaticamente la cache con il database. Ciò garantisce che i dati nella cache siano sempre aggiornati e non si verifichino problemi di integrità dei dati. È possibile configurare la sincronizzazione del database in base alle notifiche di eventi emesse dal server del database o tramite polling.

La sincronizzazione basata sugli eventi è immediata e in tempo reale, ma può diventare piuttosto loquace se aggiorni i dati nel database molto frequentemente.

Il polling è in realtà molto più efficiente perché in un solo recupero NCache può sincronizzare centinaia e persino migliaia di righe. Ma il polling non è immediato e di solito ha qualche secondo ritardo. L'intervallo di polling è tuttavia configurabile.

Per saperne di più, leggi sincronizzazione del database.

Sincronizzazione database

Query parallela simile a SQL, LINQ e tag

NCache fornisce diversi modi per cercare oggetti nella cache distribuita invece di fare affidamento solo sulle chiavi. Ciò include un linguaggio di query simile a SQL parallelo, tag e gruppi/sottogruppi.

Il linguaggio di query simile a SQL parallelo consente di eseguire ricerche nella cache in base agli attributi dell'oggetto anziché alle chiavi. Inoltre, questa query viene distribuita a tutti i server cache da eseguire in parallelo e i risultati vengono quindi consolidati e restituiti. Ciò ti consente di emettere una query del tipo "trova tutti gli oggetti cliente in cui la città del cliente è San Francisco". Dalle applicazioni .NET, puoi anche usare LINQ per cercare nella cache distribuita comprese le espressioni lambda.

  public class Program
  {
      public static void Main(string[] args)
      {
          NCache.InitializeCache("myReplicatedCache");
          String query = "SELECT NCacheQuerySample.Business.Product WHERE this.ProductID > 100";
          // Fetch the keys matching this search criteria
          ICollection keys = NCache.Cache.Search(query);
          if (keys.Count > 0)
          {
              IEnumerator ie = keys.GetEnumerator();
              while (ie.MoveNext())
              {
                  String key = (String)ie.Current;
                  Product prod = (Product)NCache.Cache.Get(key);

                  HandleProduct(prod);
                  Console.WriteLine("ProductID: {0}", prod.ProductID);
              }
          }
          NCache.Cache.Dispose();
      }
  } 

Tag e gruppi/sottogruppi

Tag e Gruppi/sottogruppi forniscono vari modi per raggruppare gli elementi memorizzati nella cache. I tag forniscono un raggruppamento molti-a-molti in cui un tag può contenere più elementi memorizzati nella cache e un elemento memorizzato nella cache può appartenere a più tag. E il gruppo/sottogruppo è un modo gerarchico di raggruppare gli elementi memorizzati nella cache. Puoi cercare i tag anche all'interno di un linguaggio di query simile a SQL.

Per saperne di più, leggi diversi modi per interrogare la cache distribuita.

Read-through, write-through e aggiornamento automatico

Semplifica e ridimensiona la tua applicazione inserendo parte del codice di accesso ai dati nel cluster di cache distribuita. NCache fornisce un meccanismo di lettura e scrittura che consente alla cache di leggere e scrivere dati direttamente nell'origine dati e nel database.

tu implementi IReadThruProvider ed IWriteThruProvider interfacce e quindi registrare il codice con il cluster di cache. Il tuo codice viene copiato su tutti i server cache e chiamato quando NCache deve accedere all'origine dati e al database.

È possibile combinare la lettura continua con le scadenze e la sincronizzazione del database per abilitare NCache per eseguire l'aggiornamento automatico e ricaricare automaticamente una nuova copia dei dati quando necessario.

See leggere e scrivere per i dettagli.

Condivisione dei dati di runtime tramite la messaggistica

NCache fornisce una potente piattaforma di messaggistica e condivisione dei dati di runtime estremamente veloce, scalabile e in tempo reale.

NCache consente la condivisione dei dati in tempo reale con l'aiuto di notifiche di eventi. Esistono tre tipi di eventi che le applicazioni possono utilizzare per collaborare tra loro.

Il primo è costituito dagli elementi memorizzati nella cache in cui le applicazioni registrano interesse per determinati elementi memorizzati nella cache e ricevono una notifica ogni volta che vengono aggiornati o rimossi.

Il secondo sono gli eventi generati dall'applicazione che consentono l'utilizzo dell'applicazione NCache come piattaforma di propagazione di eventi e attiva eventi personalizzati in NCache grappolo. NCache quindi instrada questi eventi ad altre applicazioni client che hanno mostrato interesse per questi eventi personalizzati.

Infine, NCache ti consente di essere avvisato separatamente ogni volta che qualcosa viene aggiunto, aggiornato o rimosso.

Per saperne di più, leggi condivisione dei dati di runtime.

Serializzazione compatta

NCache fornisce un meccanismo di serializzazione degli oggetti estremamente veloce chiamato Serializzazione compatta che non richiede alcuna modifica del codice da parte dell'utente per l'utilizzo.

Questa serializzazione è più veloce perché non usa alcuna riflessione in fase di esecuzione. E gli oggetti serializzati sono più compatti della normale serializzazione perché invece di memorizzare nomi di tipo lungo basati su stringhe, NCache registra tutti i tipi e memorizza solo gli ID di tipo.

E, soprattutto, non richiede alcuna modifica del codice da parte tua perché NCache genera il codice di serializzazione in fase di esecuzione una volta e lo utilizza più e più volte. Il risultato netto è un notevole aumento delle prestazioni dell'applicazione.

Cosa fare dopo?

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