WCF 缓存服务器端

本文关键字:服务器端 缓存 WCF | 更新日期: 2023-09-27 17:57:13

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

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

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

WCF 缓存服务器端

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

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

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

根据负载,您还可以使用数据库进行缓存(取决于您所说的缓存)。还有专门针对分布式缓存优化的内存数据库,请参阅 memchached、redis 和 Memcache vs. Redis?

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
}