2

我正在使用最新版本的 ServiceStack。我正在使用服务堆栈提供的内存缓存,因为我的服务正在从慢速数据库中读取数据。

全部实现后,服务响应时间为 5-7 秒,太慢了。是否有可能对其进行优化并使其更具响应性。

这是我的概念代码:

public class CustomerService : Service
{
    public object Any(Customer request)
    {
        string cacheKey = "customerReport_" + request.Id;
        report = CacheClient.Get<BalanceReport>(cacheKey);
        if(report != null)
            return report;

        //Logic to build report.
        //I am caching the report object here before returning report.
    }
}
4

2 回答 2

0

您可以查看 http 缓存来帮助您的请求。在这里查看更多信息。

于 2012-10-30T12:50:31.217 回答
0

您可能应该使用 ServiceStack 中内置的缓存模式,例如:

public class CustomerService : Service
{
        public object Any(Customer request)
        {
            string cacheKey = "customerReport_" + request.Id;
            return base.RequestContext.ToOptimizedResultUsingCache(
                this.CacheClient, cacheKey, () => {
                    //Logic to build report.
                    //I am caching the report object here before returning report.
                    return repo.GetCustomerReport(request.Id);
                });
        }
}

您可以在 wiki 上阅读有关ServiceStack 缓存的更多信息。基本上它在缓存中存储最优化的 Web 服务响应,例如 Deflate/Compressed JSON 字节(如果它是 JSON 请求)。

于 2012-10-30T15:30:16.857 回答