El almacenamiento en caché de AppFabric proporciona una plataforma de caché distribuida en memoria para Windows Server . [1] Microsoft desarrolló AppFabric Caching y lo lanzó como parte de AppFabric .
Arquitectura
El almacenamiento en caché de AppFabric almacena objetos administrados serializados en un clúster de caché. El clúster de caché consta de una o más máquinas que agrupan su memoria física disponible. [2] Esta memoria agrupada se presenta a los clientes de caché como una única fuente de memoria caché. Los objetos se almacenan y se accede a ellos mediante un valor clave asociado.
Las funciones de almacenamiento en caché de AppFabric deben instalarse en cada servidor del clúster de caché. [3] Después de la instalación, se debe utilizar el Asistente de configuración de AppFabric para unir cada servidor al clúster de caché. [4] Se requiere una base de datos o un recurso compartido de archivos externo para mantener la configuración del clúster de caché. [5] Un conjunto de comandos de Windows PowerShell para el almacenamiento en caché proporciona capacidades de administración en el clúster de caché. [6]
Ejemplos de código
Tenga en cuenta que los ejemplos de código de esta sección se muestran en C # .
Una tarea común es crear código que coloque, recupere y elimine objetos de la caché. Estas operaciones tienen como objetivo el caché predeterminado o un caché con nombre. [7]
Primero, cree un miembro estático de DataCache [8] :
pública estática DataCache _cache ;
A continuación, cree un método que acceda a esta caché. Las propiedades de la caché se pueden almacenar en los archivos app.config o web.config. [9] La configuración de la caché también se puede configurar mediante programación. [10] El siguiente ejemplo muestra cómo configurar la caché mediante programación.
pública estática DataCache GetCache () { si ( _cache =! nula ) de retorno _cache ; // Definir matriz para 1 Cache Host List < DataCacheServerEndpoint > servers = new List < DataCacheServerEndpoint > ( 1 ); // Especifique los detalles del host de caché // Parámetro 1 = nombre de host // Parámetro 2 = número de puerto de caché servidores . Agregar ( nuevo DataCacheServerEndpoint ( "mymachine" , 22233 )); // Crear configuración de caché DataCacheFactoryConfiguration configuration = new DataCacheFactoryConfiguration (); // Configurar el host (s) de caché de configuración . Servidores = servidores ; // establecer propiedades predeterminadas de caché local (local caché desactivado) de configuración . LocalCacheProperties = nuevo DataCacheLocalCacheProperties (); // Deshabilite el rastreo para evitar mensajes informativos / detallados en la página web DataCacheClientLogManager . ChangeLogLevel ( System . Diagnostics . TraceLevel . Off ); // Pasar los parámetros de configuración al constructor cacheFactory _factory = new DataCacheFactory ( configuración ); // Obtiene una referencia al caché con nombre llamado "predeterminado" _cache = _factory . GetCache ( "predeterminado" ); return _cache ; }
El siguiente método muestra cómo utilizar el objeto _cache para recuperar datos de la caché. En este ejemplo, un identificador de usuario ( userid ) es la clave para el objeto de información de usuario asociado. El código primero intenta obtener esta información de usuario de la caché usando la clave de ID de usuario . Si eso no tiene éxito, el código recupera la información con una consulta de la base de datos y luego almacena los datos del usuario devueltos en la caché. La próxima vez que se ejecute el mismo código, la información del usuario se devolverá desde la caché en lugar de la base de datos. Esto supone que los datos almacenados en caché no han caducado ni han sido desalojados.
dataType GetUserData ( string userId ) { dataType data = null ; // Intente recuperar los datos del usuario de la caché: object dataObject = _cache . Obtener ( userId ); if ( dataObject ! = null ) data = ( dataType ) dataObject ; else { // Si no existe en el caché, recupérelo de la base de datos : data = GetUserDataFromDatabase ( "SELECT * FROM users WHERE userid = @userId" , userId ); // Ponga los datos devueltos en la caché para futuras solicitudes: _cache . Agregar ( userId , datos ); } devolver datos ; }
El siguiente método muestra cómo actualizar los datos que ya están en la caché.
void UpdateUserData ( string userId , dataType data ) { // Actualiza la información del usuario en la base de datos: result = UpdateUserDataInDatabase ( userId , data ); if ( resultado ) { // Si se actualizó correctamente, actualice la caché: _cache . Poner ( userId , datos ); } }
La siguiente llamada elimina el elemento de la caché.
_caché . Eliminar ( userId );
Historia
Originalmente, AppFabric Caching tenía varias versiones beta con el nombre de código Velocity . [11] En junio de 2010, Microsoft lanzó oficialmente AppFabric Caching como parte de AppFabric . [12] Para obtener información más detallada, consulte la sección de historial de la página de AppFabric .
Tecnologías de caché relacionadas
El almacenamiento en caché de AppFabric está relacionado con otras tecnologías de almacenamiento en caché de Microsoft. Estas tecnologías comparten características similares, como el nombre del ensamblado, el espacio de nombres y los tipos. [13] Sin embargo, existen algunas diferencias. La siguiente tabla describe estas tecnologías.
Tecnología de almacenamiento en caché | Objetivo | Instalado por | Descripción |
---|---|---|---|
Almacenamiento en caché de AppFabric | En las instalaciones | AppFabric | Caché local distribuido que utiliza servidores que el usuario aprovisiona y administra. |
Almacenamiento en caché de Windows Azure | Nube | SDK de Windows Azure | El almacenamiento en caché se distribuye entre las instancias de un solo rol en una implementación de servicio en la nube de Windows Azure. |
Almacenamiento en caché compartido de Windows Azure | Nube | SDK de Windows Azure | El almacenamiento en caché se proporciona como un servicio multiusuario para que lo utilicen los servicios en la nube de Windows Azure. |
Referencias
- ^ "Funciones de almacenamiento en caché de AppFabric 1.1" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Diagrama de arquitectura física de almacenamiento en caché de AppFabric" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Instalación y configuración de AppFabric" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Configurar AppFabric" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Opciones de almacenamiento de configuración de clúster" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Uso de Windows PowerShell para administrar las características de almacenamiento en caché de AppFabric 1.1" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Diagrama de arquitectura lógica de almacenamiento en caché de AppFabric" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Clase DataCache" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Configuración de cliente basada en XML" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Configuración de cliente programática" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Cree mejores aplicaciones basadas en datos con almacenamiento en caché distribuido" . Revista MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Microsoft entrega versión candidata de Windows Server AppFabric, versión Beta de BizTalk Server 2010" . Centro de noticias de Microsoft . Microsoft . Consultado el 13 de febrero de 2013 .
- ^ "Diferencias entre el almacenamiento en caché local y en la nube" . Biblioteca de MSDN . Microsoft . Consultado el 13 de febrero de 2013 .
enlaces externos
- Funciones de almacenamiento en caché de AppFabric 1.1
- Referencia de la biblioteca de clases de AppFabric
- Descargar: Microsoft AppFabric 1.1 para Windows Server
- Descargar: paquete de actualización acumulativa 3 para Microsoft AppFabric 1.1 para Windows Server