我是新来的缓存,并试图了解它是如何工作的一般。以下是来自ServiceStack网站的代码片段。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 });
}
});
}
我的疑惑是:
我读过,缓存的数据存储在相同/分布式服务器上RAM。那么,它能处理多少数据,假设第一种方法如果客户数量超过100万,是不是占用太多内存。
在一般情况下,我们是否只对GET操作应用缓存,如果得到UPDATE'd就无效。
请建议任何工具来检查内存消耗的缓存。