Attualmente sto ricercando l'integrazione della caching di AppFabirc nella mia applicazione .net C# e cercando alcuni esempi di codice di tale. Sono disponibili campioni open source o di codice disponibili nella cache AppFabric disponibile che posso visualizzare?Esempi di memorizzazione nella cache di AppFabric mediante C#
risposta
Attività cache
Il primo oggetto di creare quando si tratta di AppFabric caching è un DataCacheFactory
. Questo può essere creato con dati di configurazione hard-coded che comunicano alla fabbrica come contattare il server cache, o senza configurazione, nel qual caso legge la configurazione dal proprio file web.config/app.config. La mia raccomandazione è di mantenere le informazioni di configurazione nel file .config, altrimenti quando si desidera modificare qualcosa nella configurazione della cache, è necessario ricompilare e ridistribuire l'applicazione. La cosa importante da ricordare su DataCacheFactory è che è costoso da creare - sicuramente non si vuole creare uno di questi per ogni operazione di cache. Prendi in considerazione l'utilizzo del pattern Singleton - vedi this question per ulteriori dettagli.
// Create a factory reading the config info from the .config file
DataCacheFactory factory = new DataCacheFactory();
L'interfaccia principale di una cache è tramite l'oggetto Cache
. La cache è ottenuta dal metodo di DataCacheFactory GetCache
, passando il nome della cache:
DataCache myCache = factory.GetCache("myCache");
aggiunge una voce alla cache
Ogni elemento in una cache ha una chiave, che è una stringa. La chiave deve essere univoca per la cache: se passi una chiave già esistente otterrai un'eccezione. L'elemento da memorizzare nella cache deve essere serializzabile, in modo che AppFabric possa passarlo internamente attorno ai server nella cache. Al livello più elementare, gli elementi vengono aggiunti alla cache usando il metodo Add
.
object myCachedItem = new Object();
string myCachedItemKey = "MyCacheKey";
myCache.Add(myCachedItemKey, myCachedItem);
Rimozione di una voce dalla cache
myCache.Remove(myCachedItemKey);
Semplice come.
Ottenere un elemento dalla cache
Quando si ottiene un elemento dalla cache, viene utilizzato il modello cache-aside. Ciò significa che cerchiamo nella cache per vedere se l'elemento desiderato è lì (usando la chiave). Se l'elemento si trova nella cache, prendiamo l'elemento memorizzato nella cache (potenzialmente trasmettendolo a un tipo diverso); altrimenti prendiamo provvedimenti per ottenere l'articolo da zero, ad es. la lettura da un database, e quindi la cache in modo che sia lì per noi la prossima volta.
object cachedObject;
string myImportantDataKey = "MyImportantDataTable";
DataTable myImportantData;
// This is an object because everything is returned from the cache as an object
cachedObject = myCache.Get(myImportantDataKey);
// Check to see if we got something from the cache
if (cachedObject == null)
{
// The requested item wasn't in the cache - a cache miss
// Go get the data from the db
myImportantData = getMyImportantDataFromMyDatabase();
// Add the item to the cache so we've got it for next time
myCache.Add(myImportantDataKey, myImportantData);
}
else
{
// We have the cached object so cast it to a DataTable
myImportantData = (DataTable)cachedObject;
}
Aggiornamento di una voce nella cache
// Put can be used to update an existing item in the cache
// If the item does not exist then it functions like Add
myCache.Put(myImportantDataKey, myUpdatedImportantData);
Ecco le operazioni CRUD di base, ma c'è molto di più che si può ottenere in per affrontare la concorrenza!
Il Kit di Windows Server AppFabric formazione può essere scaricato here, ha una sezione dedicata caching. Continua a seguire il tag appfabric perché sono sicuro che nel tempo ci saranno molti altri esempi di codice che risolvono i problemi per le persone.
Chiedersi se quel modello è sicuro, ad es. un server può osservare che una chiave non è presente, tentare di aggiungere una voce e quindi fallire perché un altro server stava già costruendo la voce in preparazione all'aggiunta della voce. – redcalx
@locster Questa è una critica valida di questo codice, sebbene nella mia (limitata) difesa sia inteso come codice demo, non come qualità di produzione. Risulta anche semplice quando inizi a guardare i meccanismi di concorrenza; una delle caratteristiche di AppFabric è che puoi 'GetAndLock' elementi che non esistono attualmente nella cache. Quindi il Server 1 vede che l'elemento non esiste, quindi lo blocca in preparazione per effettuare una chiamata al database. Il server 2 vede che l'elemento non esiste, prova a "GetAndLock" e non riesce perché il server 1 ha già il blocco. Vedi http://tinyurl.com/c5t6w45 – PhilPursglove
Vale anche la pena aggiungere che il pattern Singleton è praticamente essenziale se si utilizza il servizio Cello di AppFabric di Azure poiché ogni instatiazione di DataCacheFactory crea una nuova connessione al servizio Caching di AppFabric di Azure. Dato che il numero di connessioni è limitato in base alla dimensione della cache (128 MB di cache include 5 connessioni) si bloccherà molto rapidamente tutte le connessioni se non si riutilizza la stessa fabbrica!
128 MB di cache ora include 10 connessioni –
- 1. esempi di memorizzazione offline e memorizzazione nella cache decenti html5
- 2. Soluzioni di memorizzazione nella cache
- 3. Memorizzazione nella cache di bulloni di tempesta
- 4. Memorizzazione nella cache di un'immagine e UICollectionView
- 5. Errori Cache AppFabric
- 6. Memorizzazione nella cache di un file binario in C#
- 7. Evita la memorizzazione nella cache di IE
- 8. Soluzioni di memorizzazione nella cache e query
- 9. Memorizzazione nella cache di volley e bitmap
- 10. Archiviazione e memorizzazione nella cache di Azure
- 11. Memorizzazione nella cache di autenticazione mercuriale?
- 12. Dati di memorizzazione nella cache in PHP
- 13. Best practice di memorizzazione nella cache
- 14. Memorizzazione nella cache di una matrice PHP
- 15. Tecniche di memorizzazione dati nella cache MVC3
- 16. Pattern deposito - Memorizzazione nella cache
- 17. Differenze tra componenti di memorizzazione nella cache nella configurazione Web
- 18. Risultati di memorizzazione nella cache di Haskell di una funzione
- 19. Memorizzazione nella cache dei dati JSON in C# MVC3
- 20. Domanda su come utilizzare la funzionalità cache di AppFabric
- 21. Prevenzione di NSURLSession dalle risposte di memorizzazione nella cache
- 22. Problema di memorizzazione nella cache delle immagini dinamiche di IE?
- 23. Memorizzazione nella cache di una sezione di una pagina CodeIgniter
- 24. Memorizzazione nella cache di un controllo utente in ASP.NET?
- 25. NetBIOS esegue la memorizzazione nella cache?
- 26. Memorizzazione nella cache dei dati nei graal
- 27. collezioni memorizzazione nella cache in backbone.js?
- 28. SQLCacheDependency e AppFabric Server
- 29. Disabilitare la memorizzazione nella cache nel pallone
- 30. Restkit, disabilita la memorizzazione nella cache
C'è qualche aspetto del caching di AppFabric in particolare per il quale si desidera vedere il codice demo? – PhilPursglove
Le operazioni di base come aggiungere, rimuovere, ottenere dalla cache. Alcuni esempi di utilizzo di questo sarebbero utili anche per l'impostazione generale di appfabric nel codice C#. – amateur
C'è un download ZIP con un numero di campioni disponibili da Microsoft, ma solo google per esso. – JensG