Php 如何动态决定缓存什么 问题

Php 如何动态决定缓存什么 问题,php,mysql,database,caching,memcached,Php,Mysql,Database,Caching,Memcached,我想将缓存添加到我的web应用程序中 因为缓存所有东西都会杀死我的服务器,而缓存任何东西都不会做同样的事情,所以我想知道如何确定哪些东西值得动态缓存 有办法吗 换言之,我需要一个算法,该算法将不断: 按流行程度缓存数据顺序 …但仅限于服务器资源不足的情况 我的解决方案 我解决此问题的尝试假设我们缓存所有数据,并按以下步骤进行: 如果没有缓存版本,则创建一个,但仅在短时间内创建一个(例如1秒) 如果存在缓存版本,请使用它并将其寿命再延长一秒钟 如果存在缓存版本且当前分钟数可被5整除,则转到第1

我想将缓存添加到我的web应用程序中

因为缓存所有东西都会杀死我的服务器,而缓存任何东西都不会做同样的事情,所以我想知道如何确定哪些东西值得动态缓存

有办法吗

换言之,我需要一个算法,该算法将不断:

  • 按流行程度缓存数据顺序
  • …但仅限于服务器资源不足的情况
我的解决方案 我解决此问题的尝试假设我们缓存所有数据,并按以下步骤进行:

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

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

  • 如果存在缓存版本且当前分钟数可被5整除,则转到第1点

  • 运行cron,不断监视服务器资源,如果资源不足,会释放其中的一些资源


  • 没有办法教一个程序——不是一个简单的程序——知道现在缓存什么重要,什么不重要

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

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


    正如您所说,应用程序必须了解数据的流行程度。所以,应用程序知道什么是缓存。

    你的问题是有建设性的,但我建议一个更简单的解决方案,为什么不手动决定缓存哪个,第一件显而易见的事情是缓存到数据库的连接这就是重点。我更喜欢自动化整个过程,而不是手动选择要缓存的文件。你是对的,但不同内容的流行程度会随着时间的推移而变化。当然,管理员可以监视这些更改并手动更新缓存规则,但我的解决方案似乎是自动执行的,不是吗?您必须按流行顺序进行缓存,例如,如果文件的流行程度大于等于5,则应缓存,如果小于5,则不应缓存。将此脚本放在cron中。简单。您的解决方案很复杂,可以将缓存放入循环中(解决方案的第1项和第3项)。