【问题标题】:ASP.NET Page.Cache versus Page.Application storage for data synchronization?用于数据同步的 ASP.NET Page.Cache 与 Page.Application 存储?
【发布时间】:2011-02-24 17:11:20
【问题描述】:

Page.CachePage.Application 都可以存储应用程序的“全局”数据,在请求和线程之间共享。

考虑到多线程 ASP.NET 环境中的数据同步场景,应该如何选择一个存储区域而不是其他存储区域?

寻找最佳实践和经验丰富的建议。

【问题讨论】:

    标签: asp.net multithreading caching locking state


    【解决方案1】:

    如果数据

    • 在应用程序的生命周期内稳定
    • 必须始终可用且不得清除

    最好将其存储在 HttpApplicationState 中。

    如果数据

    • 在应用程序的生命周期中不一定需要
    • 变化频繁
    • 可以根据需要清除(例如系统内存不足)
    • 如果很少使用可以丢弃
    • 应该在某些条件下失效/刷新(依赖规则:时间跨度、日期、文件时间戳……)

    然后使用缓存

    其他要点:

    • 大量数据最好存储在缓存中,如果内存不足,服务器可以将其清除。
    • 缓存 对于多线程 操作是安全的。 Page.Application 需要锁定

    有关更多详细信息,另请参阅this article on etutorials.org

    【讨论】:

    • 对我来说最重要的原因是“其他重要点”部分,您让我注意到了 Cache 的隐式线程安全性。
    【解决方案2】:

    当您在同一个请求中需要数据时,通常会将数据存储在 Page.Application Items Collection 中。当您希望跨多个请求使用 Page.Cache 时,通常会在数据缓存场景中使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      相关资源
      最近更新 更多