【问题标题】:Caching for .NET (not in websites).NET 缓存(不在网站中)
【发布时间】:2009-08-14 20:54:10
【问题描述】:

我需要一个响应内存压力的缓存,就像 ASP.NET 中的内置缓存一样。我没有使用网站,但我正在构建 Windows 服务。

有什么建议吗? (代码、技术、产品,我不在乎,只要它在内存中)

【问题讨论】:

    标签: .net windows-services


    【解决方案1】:

    如果您熟悉 ASP.NET 缓存 (System.Web.Caching),您仍然可以引用和使用它,即使您没有在 Web 应用程序中运行。

    【讨论】:

    • 可以通过 System.Web.HttpRuntime.Cache 访问(静态属性)
    • 不明显的人。我今天尝试使用它,“HttpContext.Current.Cache”和“New Cache”都失败了,没有告诉我原因。当然,不明显的 HttpRuntime.Cache 像冠军一样工作。
    • 同意。但是,如果您不处理 ASP.NET 请求,HttpContext.Current 将始终为空。
    • .Net 4.0 现在具有“对象缓存”,因此您不必依赖 System.Web 库版本。见deanhume.com/Home/BlogPost/object-caching----net-4/37
    【解决方案2】:

    【讨论】:

    • Velocity 是一个进程外选项。这使得它非常适合服务器场,但对于在全球范围内拥有一个正在运行的实例的应用程序来说却是愚蠢的。
    • 我将其列为一个选项,以便您至少了解您的选择。您可以根据自己的要求、成本效益分析和思考过程来评估和消除。毕竟,仅给出几句话就很难确定应用程序的愚蠢与否。还要记住,它是进程外的,但在内存中。当你的应用程序启动时找到已经缓存在内存中的东西可能会很好。
    【解决方案3】:

    你看过微软企业库缓存块吗:

    “几乎每个应用程序都需要缓存数据。虽然您可能熟悉 ASP.NET 中内置的缓存功能,但 Enterprise Library Caching Block 提供内存中、基于文件或数据库的缓存存储您的所有其他 .NET 应用程序。"

    Caching App Block

    【讨论】:

      【解决方案4】:

      memcached 有 .Net 客户端:

      【讨论】:

        猜你喜欢
        • 2018-11-24
        • 1970-01-01
        • 2013-11-02
        • 2012-01-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-28
        • 2015-12-11
        相关资源
        最近更新 更多