【问题标题】:WCF Caching Server sideWCF 缓存服务器端
【发布时间】:2014-04-08 18:13:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# wcf caching


    【解决方案1】:

    HttpContext缓存对象只存在于特定的客户端和主机之间对吗?

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

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

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

    【讨论】:

      【解决方案2】:

      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
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-24
        • 2014-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-02
        相关资源
        最近更新 更多