Come funziona la cache nei servizi Web di ServiceStack

6

Sono nuovo nel caching e cerco di capire come funziona in generale. Di seguito è riportato lo snippet di codice dal sito Web di ServiceStack.

public object Get(CachedCustomers request)
{
    //Manually create the Unified Resource Name "urn:customers".
    return base.RequestContext.ToOptimizedResultUsingCache(base.Cache, "urn:customers", () =>
    {
         //Resolve the service in order to get the customers.
         using (var service = this.ResolveService<CustomersService>())
                return service.Get(new Customers());
     });
}

public object Get(CachedCustomerDetails request)
{
    //Create the Unified Resource Name "urn:customerdetails:{id}".
    var cacheKey = UrnId.Create<CustomerDetails>(request.Id);
    return base.RequestContext.ToOptimizedResultUsingCache(base.Cache, cacheKey, () =>
    {
        using (var service = this.ResolveService<CustomerDetailsService>())
        {
             return service.Get(new CustomerDetails { Id = request.Id });
        }
    });
}

I miei dubbi:

  1. Ho letto che i dati memorizzati nella cache sono memorizzati su RAM server stesso / distribuito. Quindi, quanti dati può gestire, supponiamo che nel primo metodo i clienti contino più di 1 milione, non occupa troppa memoria.

  2. Ingenerale, applichiamo la memorizzazione nella cache solo per le operazioni GET e invalido se ottiene UPDATE'd.

  3. Suggerire qualsiasi strumento per controllare il consumo di memoria nella cache.

posta Sunny 06.03.2013 - 19:47
fonte

1 risposta

6

Leggi pagina wiki di ServiceStack sul caching .

Quale memoria viene utilizzata è interamente determinata dal provider di Caching utilizzato, ad es. se si utilizza una cache distribuita come Redis o Memcached, la memoria del processo di tale daemon / servizio crescerà per conservare i dati memorizzati nella cache. Se si utilizza MemoryCachedClient di ServiceStack (il valore predefinito), le cache vengono semplicemente mantenute in memoria, ad esempio nel processo w3wp.exe di ASP.NET.

Quanto è grande la cache, è direttamente influenzato da ciò che è memorizzato nella cache.

La tua strategia di caching scelta è indipendente dai provider di memorizzazione nella cache, l'esempio fornito utilizza un modello di cache che crea pigramente la cache quando viene recuperato e lo invalida quando viene modificato.

    
risposta data 06.03.2013 - 20:30
fonte

Leggi altre domande sui tag