Jump to content

Кэширование AppFabric

(Перенаправлено из Velocity (кэш памяти) )

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.
  1. ^ «Функции кэширования AppFabric 1.1» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  2. ^ «Схема физической архитектуры кэширования AppFabric» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  3. ^ «Установка и настройка AppFabric» . Библиотека MSDN . Майкрософт. 26 октября 2012 года . Проверено 13 февраля 2013 г.
  4. ^ «Настроить AppFabric» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  5. ^ «Параметры хранения конфигурации кластера» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  6. ^ «Использование Windows PowerShell для управления функциями кэширования AppFabric 1.1» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  7. ^ «Схема логической архитектуры кэширования AppFabric» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  8. ^ «Класс DataCache» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  9. ^ «Конфигурация клиента на основе XML» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  10. ^ «Программная конфигурация клиента» . Библиотека MSDN . Майкрософт. 12 сентября 2012 года . Проверено 13 февраля 2013 г.
  11. ^ «Создавайте более качественные приложения, управляемые данными, с помощью распределенного кэширования» . Журнал MSDN . Майкрософт . Проверено 13 февраля 2013 г.
  12. ^ «Microsoft представляет версию-кандидат Windows Server AppFabric, бета-версию BizTalk Server 2010» . Центр новостей Майкрософт . Майкрософт . Проверено 13 февраля 2013 г.
  13. ^ «Различия между кэшированием локально и в облаке» . Библиотека MSDN . Майкрософт . Проверено 13 февраля 2013 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 302b2c6daeb0c3d1219611debfd7c1d9__1718366100
URL1:https://arc.ask3.ru/arc/aa/30/d9/302b2c6daeb0c3d1219611debfd7c1d9.html
Заголовок, (Title) документа по адресу, URL1:
AppFabric Caching - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)