WCF缓存服务器端

时间:2014-04-08 09:50:22

标签: c# wcf caching

如何在C#WCF Rest服务上使用服务器端缓存?

例如,我将大量数据生成到一个对象(而不是通过数据库),我不希望每次调用(随机)用户都这样做。如何缓存对象。

验证问题:HttpContext缓存对象仅在特定客户端和主机之间是否正确?

2 个答案:

答案 0 :(得分:2)

  

HttpContext缓存对象是否只在特定客户端和主机之间?

不,它是一个共享对象,根据msdn

  

每个应用程序域都有一个Cache类实例。作为一个   结果,Cache属性返回的Cache对象是   缓存应用程序域中所有请求的对象。

根据负载的不同,您还可以使用数据库进行切换(取决于您所谓的缓存)。还有内存数据库专门针对分布式缓存进行了优化,请参阅memchachedredisMemcache vs. Redis?

答案 1 :(得分:0)

HttpContext.Cache是应用程序域的本地,因此在该应用程序域中运行的所有代码共享。对于大多数应用来说,它当然快速而灵活。

您将如何使用它,当然取决于您的需求。您可以使用序列化版本的输入参数作为键,例如,如下例所示:

public MyObject GetMyObject(int size, string cultureId, string extra)
{
    // Input validation first
    ...

    // Determine cache key
    string cacheKey = size.ToString() + cultureId.ToString() + extra.ToString();

    // rest of your code here
}
相关问题