Скорость кеширования и IS - PullRequest
1 голос
/ 06 июля 2011

Я хочу знать связь между скоростью и IS.Если запрос удовлетворен по скорости, то будет ли он использовать рабочий процесс.Или что случилось, я запутался.?

Также я хочу сохранить некоторые данные, такие как страна, штат и город для автоматического предложения скорости.Эта база данных может быть на 3 ГБ.Теперь, как скорость будет работать.И как это будет работать.Будет ли это эффект ЭТО.По сути, мои требования состоят в том, чтобы я хотел сохранять все данные о стране, штате и городе со скоростью, не хотел получать доступ к базе данных и не хотел загружать IS.Каково решение?

Пожалуйста, помогите

1 Ответ

1 голос
/ 06 июля 2011

Velocity - кодовое имя технологии распределенного кэширования Microsoft AppFabric.Очень похоже на memcache, он используется для кэширования объектов на нескольких компьютерах.

Это не имеет никакого отношения к тому, как IIS обрабатывает запросы.Все запросы удовлетворяются IIS, AppFabric - это механизм хранения данных, а не обработки запросов.

В ответ на ваш второй вопрос;Вы можете использовать AppFabric для первой проверки данных.Если данные не существуют в кеше, вызовите базу данных для заполнения кеша, а затем верните данные.

var factory = DataCacheFactory();
var cache = factory.GetCache("AutoSuggest");

List<Region> regions = cache.Get("Regions") as List<Region>;
if (regions == null) {
    regions = // Get regions from database.
    cache.Add("Regions", regions);
}

return regions;

Проверка сначала кеша позволяет приложению получать более быстрый ответ, так как база данныхударить только по первому экземпляру (в идеале), и данные результата будут помещены обратно в кеш.

Вы можете обернуть это немного больше:

public T Get<T>(string cacheName, string keyName, Func<T> itemFactory)
    where T : class
{
    var cache = dataFactory.GetCache(cacheName);

    T value = cache.Get(keyName) as T;
    if (value == null) {
         value = itemFactory();
         cache.Add(keyName, value);
    }

    return value;
}

Таким образом, вы можете изменитьваш поиск вызывает что-то похожее на:

var regions = Get<List<Region>>("AutoSuggest", "Regions", () => GetRegions());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...