c# caching appfabric

Ejemplos de almacenamiento en caché de AppFabric usando c#



caching (2)

Actualmente estoy investigando la integración del almacenamiento en caché de AppFabirc en mi aplicación .net c # y buscando algunos ejemplos de código de este tipo. ¿Hay alguna fuente abierta o ejemplos de código disponibles en el almacenamiento en caché de AppFabric disponibles que pueda ver?


También vale la pena agregar que el patrón de Singleton es bastante esencial si está utilizando el servicio Azure AppFabric Caching ya que cada instalación de DataCacheFactory crea una nueva conexión con el servicio Azure AppFabric Caching. Dado que el número de conexiones es limitado en función del tamaño de su caché (128 MB de caché incluye 5 conexiones) ¡bloqueará muy rápidamente todas sus conexiones si no vuelve a utilizar la misma fábrica!


Operaciones de caché
El primer objeto para crear cuando se trata de caché de AppFabric es un DataCacheFactory . Esto se puede crear con datos de configuración codificados que le indican a la fábrica cómo contactar al servidor de caché, o sin configuración, en cuyo caso lee la configuración de su archivo web.config / app.config. Mi recomendación es que guarde la información de configuración en su archivo .config; de lo contrario, cuando desee cambiar algo en la configuración de la memoria caché, deberá volver a compilar y redistribuir su aplicación. Lo importante de recordar sobre DataCacheFactory es que es costoso de crear: definitivamente no desea crear uno de estos para cada operación de caché. Considere utilizar el patrón de Singleton: consulte esta pregunta para obtener más detalles.

// Create a factory reading the config info from the .config file DataCacheFactory factory = new DataCacheFactory();

La interfaz principal para un caché es a través del objeto Cache . Una caché se obtiene del método GetCache de GetCache , pasando el nombre de la caché:

DataCache myCache = factory.GetCache("myCache");

Agregar un elemento a la memoria caché
Cada elemento en un caché tiene una clave, que es una cadena. La clave debe ser exclusiva de la memoria caché; si ingresa una clave que ya existe, obtendrá una excepción. El elemento que se almacenará en caché debe ser serializable para que AppFabric pueda pasarlo internamente por los servidores en la caché. En el nivel más básico, los elementos se agregan a la memoria caché mediante el método Add .

object myCachedItem = new Object(); string myCachedItemKey = "MyCacheKey"; myCache.Add(myCachedItemKey, myCachedItem);

Eliminar un elemento de la memoria caché

myCache.Remove(myCachedItemKey);

Simple como.

Obtener un elemento de la memoria caché
Al obtener un elemento de la memoria caché, usamos el patrón de memoria caché. Esto significa que buscamos en el caché para ver si el artículo deseado está allí (usando la tecla). Si el elemento está en la memoria caché, tomamos el elemento almacenado en caché (lo que potencialmente lo convierte en un tipo diferente); de lo contrario, tomamos medidas para obtener el elemento desde cero, por ejemplo, leyendo desde una base de datos, y luego lo almacenamos en la memoria caché para que esté disponible para nosotros la próxima vez.

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; }

Actualización de un elemento en la memoria caché

// 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);

Esas son las operaciones CRUD básicas, ¡pero hay muchas más en las que puedes lidiar para manejar la concurrencia!

Aquí se puede descargar el Windows Server AppFabric Training Kit, que tiene una sección sobre almacenamiento en caché. Siga la etiqueta appfabric aquí, ya que estoy seguro de que con el tiempo habrá muchos más ejemplos de código que resuelven problemas para las personas.