【问题标题】:Is it bad practice to store information in the cache for long periods of time?将信息长时间存储在缓存中是不好的做法吗?
【发布时间】:2016-10-29 04:32:12
【问题描述】:

我有一个网页,加载需要一段时间,因为它必须从大量本地数据库中提取信息。例如,如果用户搜索人员 1,那么它将查询 20 个数据库。有时可能需要 5 分钟才能提取所有需要的信息并应用业务逻辑。最好的解决方案是设计一个数据仓库,这是一个长期的目标。

如果我使用数据缓存,它会将(大记录的)页面加载时间从五分钟减少到四秒。将信息长时间(即 24 小时)存储在缓存中是不好的做法吗?缓存将每 24 小时刷新一次。或者,我可以将缓存的信息存储在数据库表中。

我在网上找到的每个示例都会缓存几秒钟的信息,例如20 秒。

【问题讨论】:

    标签: asp.net vb.net caching


    【解决方案1】:

    优点:

    • 更快的加载时间
    • 更少的带宽使用
    • 减少服务器压力

    缺点:

    • 可能需要高超的技术专业知识才能正确配置它
    • 不适用于不断更新的内容

    对于许多system administrators,尤其是那些有能力实现缓存系统的人来说,利大于弊。 Caching 可以让您的网站对访问者更流畅地运行,并减轻您的专用服务器的负担。

    更多请查看link

    【讨论】:

    • 您认为缓存如此长的时间(即 24 小时)是不好的做法吗?
    • 这取决于您的页面。如果内容不断更新,那么长时间缓存可能是一种不好的做法。
    • 可以查看asp.net缓存选项stackoverflow.com/questions/18937855/…
    • 如果内容更新和缓存刷新发生一次或频率相同,那么缓存是一个很好的解决方案。或者我们可以说缓存刷新频率应该大于内容更新。
    【解决方案2】:

    Cache 用于全局资源,如果在您的应用程序中数据是每个用户的,则使用 Session,这类似于每个用户的缓存。

    您还可以缓存结果并将其连接到数据库表,因此如果表正在更新,那么缓存也会被称为Cache Dependency

    您需要关注的主要问题是如果缓存的信息不是最新的,在这种情况下使用缓存依赖。

    不用担心服务器的内存问题,服务器已经优化,知道在内存不足的情况下清理缓存。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 1970-01-01
      • 2022-10-06
      • 1970-01-01
      • 2018-11-20
      • 2011-06-02
      • 2014-06-14
      相关资源
      最近更新 更多