Кэширование AppFabric
AppFabric Caching в памяти предоставляет платформу распределенного кэширования для Windows Server . [ 1 ] Microsoft разработала AppFabric Caching и выпустила его как часть AppFabric.
Архитектура
[ редактировать ]AppFabric Caching хранит сериализованные управляемые объекты в кластере кэша. Кластер кэша состоит из одной или нескольких машин, которые объединяют доступную физическую память. [ 2 ] Эта объединенная память предоставляется кэш-клиентам как единый источник кэширующей памяти. Объекты хранятся и доступны с использованием связанного значения ключа.
Функции кэширования AppFabric должны быть установлены на каждом сервере в кластере кэша. [ 3 ] После установки необходимо использовать мастер настройки AppFabric для присоединения каждого сервера к кластеру кэша. [ 4 ] Для поддержания параметров конфигурации кластера кэша требуется внешняя общая папка или база данных. [ 5 ] Набор команд Windows PowerShell для кэширования обеспечивает возможности администрирования кластера кэша. [ 6 ]
Примеры кода
[ редактировать ]Обратите внимание, что примеры кода в этом разделе показаны на C# .
Обычной задачей является создание кода, который помещает, извлекает и удаляет объекты из кэша. Эти операции нацелены либо на кэш по умолчанию, либо на именованный кэш. [ 7 ]
Сначала создайте статический DataCache. [ 8 ] член:
public static DataCache _cache;
Затем создайте метод, который обращается к этому кешу. Свойства кэша могут храниться в файлах app.config или web.config. [ 9 ] Параметры кэша также можно настроить программно. [ 10 ] В следующем примере показано, как программно настроить кэш.
public static DataCache GetCache()
{
if (_cache != null)
return _cache;
// Define array for 1 cache host
var servers = new List<DataCacheServerEndpoint>(1);
// Specify cache host details
// Parameter 1 = host name
// Parameter 2 = cache port number
servers.Add(new DataCacheServerEndpoint("mymachine", 22233));
// Create cache configuration
var configuration = new DataCacheFactoryConfiguration();
// Set the cache host(s)
configuration.Servers = servers;
// Set default properties for local cache (local cache disabled)
configuration.LocalCacheProperties = new DataCacheLocalCacheProperties();
// Disable tracing to avoid informational/verbose messages on the web page
DataCacheClientLogManager.ChangeLogLevel(System.Diagnostics.TraceLevel.Off);
// Pass configuration settings to cacheFactory constructor
_factory = new DataCacheFactory(configuration);
// Get reference to named cache called "default"
_cache = _factory.GetCache("default");
return _cache;
}
Следующий метод показывает, как использовать объект _cache для извлечения данных из кэша. В этом примере идентификатор пользователя ( userId ) является ключом для связанного объекта информации о пользователе. Код сначала пытается получить эту информацию о пользователе из кеша, используя ключ userId . Если это не удается, код извлекает информацию с помощью запроса к базе данных, а затем сохраняет возвращенные пользовательские данные в кеше. При следующем запуске того же кода информация о пользователе будет возвращена из кэша, а не из базы данных. При этом предполагается, что срок действия кэшированных данных не истек или они не были удалены.
dataType GetUserData(string userId)
{
dataType data = null;
// Attempt to retrieve the user data from the cache:
object dataObject = _cache.Get(userId);
if (dataObject != null)
data = (dataType)dataObject;
else
{
// If it doesn't exist in the cache, retrieve it from the database:
data = GetUserDataFromDatabase("SELECT * FROM users WHERE userid = @userId", userId);
// Put the returned data in the cache for future requests:
_cache.Add(userId, data);
}
return data;
}
Следующий метод показывает, как обновить данные, которые уже находятся в кеше.
void UpdateUserData(string userId, dataType data)
{
// Update the user information in the database:
result = UpdateUserDataInDatabase(userId, data);
if (result)
{
// If successfully updated, update the cache:
_cache.Put(userId, data);
}
}
Следующий вызов удаляет элемент из кэша.
_cache.Remove(userId);
История
[ редактировать ]Первоначально у AppFabric Caching было несколько бета-версий под кодовым названием Velocity . [ 11 ] В июне 2010 года Microsoft официально выпустила AppFabric Caching как часть AppFabric. [ 12 ] Более подробную информацию можно найти в разделе истории на странице AppFabric.
Сопутствующие технологии кэширования
[ редактировать ]Кэширование AppFabric связано с другими технологиями кэширования Microsoft. Эти технологии имеют схожие функции, такие как имя сборки, пространство имен и типы. [ 13 ] Однако есть некоторые различия. В таблице ниже описаны эти технологии.
Технология кэширования | Цель | Установлено | Описание |
---|---|---|---|
Кэширование AppFabric | Локально | AppFabric | Распределенный локальный кэш, использующий серверы, которые пользователь подготавливает и управляет. |
Кэширование Windows Azure | Облако | Windows Azure SDK | Кэширование распределяется по экземплярам одной роли в развертывании облачной службы Windows Azure. |
Общее кэширование Windows Azure | Облако | Windows Azure SDK | Кэширование предоставляется как мультитенантная служба для использования облачными службами Windows Azure. |
Ссылки
[ редактировать ]- ^ «Функции кэширования AppFabric 1.1» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Схема физической архитектуры кэширования AppFabric» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Установка и настройка AppFabric» . Библиотека MSDN . Майкрософт. 26 октября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Настроить AppFabric» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Параметры хранения конфигурации кластера» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Использование Windows PowerShell для управления функциями кэширования AppFabric 1.1» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Схема логической архитектуры кэширования AppFabric» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Класс DataCache» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
- ^ «Конфигурация клиента на основе XML» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Программная конфигурация клиента» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
- ^ «Создавайте более качественные приложения, управляемые данными, с помощью распределенного кэширования» . Журнал MSDN . Майкрософт . Проверено 13 февраля 2013 г.
- ^ «Microsoft представляет версию-кандидат Windows Server AppFabric, бета-версию BizTalk Server 2010» . Центр новостей Майкрософт . Майкрософт . Проверено 13 февраля 2013 г.
- ^ «Различия между кэшированием локально и в облаке» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.