除了文件或数据库之外,还有哪些缓存方法?

Tei*_*ion 12 language-agnostic caching

目前我只知道缓存数据的两种方法(我使用PHP,但我认为这同样适用于大多数语言).

  1. 将缓存保存到文件中
  2. 将缓存保存到大型DB字段

还有其他(也许是更好的)缓存方式,还是真的这么简单?

gga*_*asp 2

也许您想更准确地明确您想要缓存的内容。您有所有这些机会来缓存:

  • 访问缓存数据的数据库,首先正确调整 RDBMS,然后使用层来委托决策以检测对同一数据的多个查询(例如使用AdoDB )。
  • 从代码中的循环中提取计算,这样您就不会多次计算相同的值。这是第三种方法:将结果存储在用户的会话中。
  • 使用APC Cache等扩展预编译 PHP 代码。这样您就不必为每个请求编译相同的 PHP 代码。
  • 发送给用户的页面,确保您设置了正确的 META 标记(为世界做一件好事,至少绝对必要时不要使用 ETL);或者可能使动态页面完全静态(具有生成 .html 页面的批处理过程);或者使用像Squid这样的代理缓存。
  • 预取,我指的是所有那些你必须通过在用户不看你的方式时做一些事情来改善用户体验的机会。例如,在 HTML 文件中预加载 IMG 标签、调整 RDBMS 进行预完善、预计算结果在数据库中存储复杂的计算等。

根据我的经验,我敢打赌,在我们开始讨论缓存之前,您的代码可以得到很大的改进。例如,考虑一下您网站的导航结构是否良好以及您对用户体验的控制程度如何。然后使用XDebug等工具检查您的代码。

还要验证您进行 SQL 查询的情况以及对表建立索引的情况。然后再次检查您的代码,寻找应用“多次读取但只写入一次”规则的机会

使用像YSlow这样的简单工具来提示其他需要改进的简单事情。再次检查您的代码,寻找将逻辑放入浏览器中的机会(通过 JavaScript)