Share via


Como: Adicionar itens ao cache

Você pode acessar itens na aplicação cache usando o objeto Cache.Você pode adicionar um item à aplicação cache utilizando o método Insert do objeto Cache.O método adiciona um item à cache e tem várias cargas que lhe permitem adicionar um item com várias opções diferentes para dependências de configuração, expiração, e notificação de remoção.Se você utilizar o método Insert para adicionar um item à cache e um item com o mesmo nome já existir, o item existente na cache será substituído.

Você também pode adicionar item à cache usando o método Add.Este método lhe permite configurar todas as opções do método Insert; contudo, o método Add retorna o objeto adicionado à cache.Adicionalmente, se você usar o método Add e um item com o mesmo nome já existir na cache, o método não substituirá o item e não gerará uma exceção.

Os procedimentos neste tópico ilustram as seguintes maneiras de adicionar itens ao cache do aplicativo:

  • Adicionar um item ao cache, definindo diretamente o item por chave e valor.

  • Adicionar itens à cache usando o método Insert

  • Adicionar um item ao cache e adicionar uma dependência de maneira que o item é removido do cache quando se altera a dependência.Você pode definir dependências baseadas em outros itens do cache, em arquivos, e em objetos múltiplos.

  • Adicionar um item ao cache com políticas de expiração.Além de ser capaz de definir a dependência de um item, você pode definir o item para expirar após um período de tempo (uma expiração sliding) ou em um horário específico (uma expiração absoluta).Você pode definir uma expiração absoluta ou uma expiração sliding, mas não ambas.

  • Adicionar um item ao cache e definir a prioridade relativa do item em cache.Prioridades relativas ajudam o .NET Framework determinar quais itens do cache a remover; itens de prioridade inferior serão removidos do cache antes de itens de prioridade superior.

  • Adicionar um item através do método Add.

Além das dependências mostradas aqui, você pode criar uma dependência em uma tabela SQL Server ou com base em uma dependência personalizada.Para obter mais informações, consulte Visão geral do cache no ASP.NET e Armazenamento em ASP.NET com a Classe SqlCacheDependency.

Você também poderá ter sua aplicação notificada pela cache quando o item for removido da cache, usando o delegado CacheItemRemovedCallback.Para um exemplo completo, veja Como: Notificar an aplicativo When an Item Is Removed from the cache.

Para adicionar um item ao cache, definindo diretamente o item por chave e valor

  • Adicione os itens ao cache à medida que você adicionaria itens a um dicionário, especificando a chave e o valor do item.

    O exemplo a seguir adiciona uma propriedade chamada CacheItem1 ao objeto Cache.

    Cache["CacheItem1"] = "Cached Item 1";
    
    Cache("CacheItem1") = "Cached Item 1"
    

Para adicionar itens ao cache usando o método Insert

  • Chame o método Insert, passando a chave e o valor do item a ser adicionado.

    O exemplo de código a seguir adiciona uma string com o nome CacheItem2:

    Cache.Insert("CacheItem2", "Cached Item 2");
    
    Cache.Insert("CacheItem2", "Cached Item 2")
    

Para adicionar um item ao cache, especificando uma dependência

  • Chame o método Insert, passando uma instância do objeto CacheDependency.

    O exemplo de código a seguir adiciona um item nomeado CacheItem3 que é dependente de outro item na cache chamado CacheItem2:

    string[] dependencies = { "CacheItem2" };
    Cache.Insert("CacheItem3", "Cached Item 3",
        new System.Web.Caching.CacheDependency(null, dependencies));
    
    Dim dependencies As String() = {"CacheItem2"}
    Cache.Insert("CacheItem3", "Cached Item 3", _
        New System.Web.Caching.CacheDependency( _
        Nothing, dependencies))
    

    O exemplo de código a seguir mostra um item chamado CacheItem4, adicionado à cache tendo uma dependência de arquivo estabelecida no arquivo chamado XMLFile.xml:

    Cache.Insert("CacheItem4", "Cached Item 4",
        new System.Web.Caching.CacheDependency(
        Server.MapPath("XMLFile.xml")));
    
    Cache.Insert("CacheItem4", "Cached Item 4", _
        New System.Web.Caching.CacheDependency( _
        Server.MapPath("XMLFile.xml")))
    

    O exemplo de código a seguir mostra como criar várias dependências.Ele adiciona uma dependência de chave em outro item no cache chamado CacheItem1 e uma dependência de arquivo em um arquivo denominado XMLFile.xml.

    System.Web.Caching.CacheDependency dep1 = 
        new System.Web.Caching.CacheDependency(Server.MapPath("XMLFile.xml"));
    string[] keyDependencies2 = { "CacheItem1" };
    System.Web.Caching.CacheDependency dep2 = 
        new System.Web.Caching.CacheDependency(null, keyDependencies2);
    System.Web.Caching.AggregateCacheDependency aggDep = 
        new System.Web.Caching.AggregateCacheDependency();
    aggDep.Add(dep1);
    aggDep.Add(dep2);
    Cache.Insert("CacheItem5", "Cached Item 5", aggDep);
    
    Dim dep1 As CacheDependency = _
        New CacheDependency(Server.MapPath("XMLFile.xml"))
    Dim keyDependencies2 As String() = {"CacheItem1"}
    Dim dep2 As CacheDependency = _
        New System.Web.Caching.CacheDependency(Nothing, _
        keyDependencies2)
    Dim aggDep As AggregateCacheDependency = _
        New System.Web.Caching.AggregateCacheDependency()
    aggDep.Add(dep1)
    aggDep.Add(dep2)
    Cache.Insert("CacheItem5", "Cached Item 5", aggDep)
    

Adicionando um item ao cache com políticas de expiração

  • Chame o método Insert, passando um tempo de expiração absoluto ou relativo.

    O exemplo de código a seguir adiciona um item ao cache com uma expiração absoluta de um minuto:

    Cache.Insert("CacheItem6", "Cached Item 6",
        null, DateTime.Now.AddMinutes(1d), 
        System.Web.Caching.Cache.NoSlidingExpiration);
    
    Cache.Insert("CacheItem6", "Cached Item 6", _
        Nothing, DateTime.Now.AddMinutes(1.0), _
        TimeSpan.Zero)
    

    O exemplo de código a seguir adiciona um item ao cache com um tempo de expiração sliding de 10 minutos:

    Cache.Insert("CacheItem7", "Cached Item 7",
        null, System.Web.Caching.Cache.NoAbsoluteExpiration,
        new TimeSpan(0, 10, 0));
    
    Cache.Insert("CacheItem7", "Cached Item 7", _
        Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _
        New TimeSpan(0, 10, 0))
    

Para adicionar um item ao cache com configurações de prioridade

  • Chame o método Insert, especificando um valor da enumeração CacheItemPriority.

    O exemplo de código a seguir adiciona um item à cache com um valor prioritário de High:

    Cache.Insert("CacheItem8", "Cached Item 8",
        null, System.Web.Caching.Cache.NoAbsoluteExpiration,
        System.Web.Caching.Cache.NoSlidingExpiration,
        System.Web.Caching.CacheItemPriority.High, null);
    
    Cache.Insert("CacheItem8", "Cached Item 8", _
        Nothing, System.Web.Caching.Cache.NoAbsoluteExpiration, _
        System.Web.Caching.Cache.NoSlidingExpiration, _
        System.Web.Caching.CacheItemPriority.High, _
        Nothing)  
    

Para adicionar um item ao cache usando o método Add

  • Chame o método Add, que retorna um objeto representando um item.

    O exemplo de código a seguir adiciona um item à cache chamado CacheItem9 e define o valor da variável CachedItem9 como sendo o item que foi adicionado.

    string CachedItem9 = (string)Cache.Add("CacheItem9",
        "Cached Item 9", null,
        System.Web.Caching.Cache.NoAbsoluteExpiration,
        System.Web.Caching.Cache.NoSlidingExpiration, 
        System.Web.Caching.CacheItemPriority.Default,
        null);
    
    Dim CachedItem9 As String = CStr(Cache.Add("CacheItem9", _
        "Cached Item 9", Nothing, _
        System.Web.Caching.Cache.NoAbsoluteExpiration, _
        System.Web.Caching.Cache.NoSlidingExpiration, _
        System.Web.Caching.CacheItemPriority.Default, _
        Nothing))
    

Consulte também

Tarefas

Como: Excluir itens do cache no ASP.NET

Como: Notificar an aplicativo When an Item Is Removed from the cache

Como: Recuperar valores de itens em cache

Conceitos

Visão geral do cache no ASP.NET

Cache de dados de aplicativo

Armazenamento em ASP.NET com a Classe SqlCacheDependency