Кэширование данных SQL Server в ASP.NET - PullRequest
0 голосов
/ 03 июля 2018

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

Я добавил следующий код для доступа к SQL ...

SqlDependency.Start("Data Source=" + serverName + ";" + 
                    "Initial Catalog=...;" + "User Id=...;Password=...;");

, а затем после установления соединения SQL и непосредственно перед извлечением данных из SQL ...

SqlCacheDependency dependency = new SqlCacheDependency(command);

int numberOfMinutes = 3;
DateTime expires = DateTime.Now.AddMinutes(numberOfMinutes);

Current.Response.Cache.SetExpires(expires);
Current.Response.Cache.SetCacheability(HttpCacheability.Public);
Current.Response.Cache.SetValidUntilExpires(true);
Current.Response.AddCacheDependency(dependency);

Ранее в методе, в котором используется этот код, я обращался к SQL и возвращал список объектов из SQL. Какие дальнейшие шаги мне нужно сделать, чтобы настроить кеш? Я предполагаю, что мне нужно как-то добавить данные в кеш, а затем как-то извлечь их из кеша?

1 Ответ

0 голосов
/ 03 июля 2018

Вы можете использовать HttpRuntime.Cache объект кэша

Я бы написал общий метод для GET и SET объекта кэша.

 public T GetOrSetCache<T>
    (string key,T obj, int cacheTime) where T:class,new()
{
    System.Web.Caching.Cache cacheContainer = HttpRuntime.Cache;
    T cacheObj = cacheContainer.Get(key) as T;

    if (cacheObj == null)
    {
        cacheContainer.Insert(key,
            obj,
            null, 
            DateTime.Now.AddMinutes(cacheTime),
            System.Web.Caching.Cache.NoSlidingExpiration);
        cacheObj = obj;
    }

    return cacheObj;
}

Если вы хотите использовать кеш, вы можете сделать это в основном коде

var data = [read data from data base]
int numberOfMinutes = 3;
data = GetOrSetCache("name1",data,numberOfMinutes );

HttpRuntime.Cache

Примечание

  1. Cache - коллекция ключей / значений

  2. Получить экземпляр из cache, вам необходимо предоставить ключ.

  3. Установите экземпляр в cache, вам необходимо предоставить ключ и объект экземпляра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...