我是新來的緩存,並試圖瞭解它是如何工作的一般。以下是來自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就無效。
請建議任何工具來檢查內存消耗的緩存。