如何动态决定缓存内容

时间:2013-09-05 12:42:21

标签: php mysql database caching memcached

问题

我想在我的网络应用程序中添加缓存。

由于缓存一切都会杀死我的服务器而缓存什么都不会做同样的事情,我想知道如何决定什么值得动态缓存

有没有办法做到这一点?

换句话说,我需要一种不断的算法:

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

我的解决方案

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

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

  2. 如果有缓存版本,请使用它并将其延长一段时间

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

正如您所说,应用程序必须知道数据的流行程度。因此,应用程序知道缓存。