如何动态决定要缓存的内容


How to dynamically decide what to cache

问题

我想向我的 Web 应用程序添加缓存。

由于缓存所有内容都会杀死我的服务器,并且什么都不缓存会做同样的事情,我想知道如何决定什么值得即时缓存

有什么办法可以做到这一点吗?

换句话说,我需要一个不断:

  • 缓存数据按其受欢迎程度排序...
  • 。但仅限于服务器资源不足的程度

我的解决方案

我尝试解决此问题的尝试假设我们缓存所有数据并按以下步骤进行:

  1. 如果没有缓存版本,请创建一个,但仅在短时间内(例如 1 秒)

  2. 如果有缓存版本,请使用它并将其寿命再延长一秒钟

  3. 如果有缓存版本并且当前分钟数可被 5 整除,请转到第 1 点

  4. 运行 cron 它会持续监视服务器资源,如果它们很短,则会释放其中一些资源。

没有办法教一个程序 - 不容易 - 知道现在缓存什么重要,什么不重要。

这应该由建筑师或工程师决定。因为只有他知道应该缓存什么。如果您不知道必须缓存什么,则最好研究应用程序的域并观察她的行为。

无论如何,要教一个程序,它应该缓存什么,你应该知道之前缓存什么。

正如您所说,应用程序必须知道数据的受欢迎程度。因此,应用程序知道什么缓存。