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:
-
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.
-
Ingenerale, applichiamo la memorizzazione nella cache solo per le operazioni GET e invalido se ottiene UPDATE'd.
-
Suggerire qualsiasi strumento per controllare il consumo di memoria nella cache.