【发布时间】:2012-10-30 18:05:58
【问题描述】:
假设我们有一个向用户呈现连续数据的应用程序。例如。博客 - 我们提供博客条目列表,该列表分为页面 - 所以我们以 /page1、/page2 等结尾。
显然第一页被请求的频率最高,但页数越高,请求的频率就越低。
如果我们为我们的应用实现缓存,我们有两个选择:
每个新条目后更新每个页面的缓存
当页面被请求时,PHP 正在寻找缓存版本;如果存在则返回,否则将创建缓存,并将过期日期设置为一个小时
第一个解决方案对我来说似乎真的很浪费资源。第二个会造成危险场景的可能性:
如果用户请求页面 x 然后 (x+1),其中页面 x 被缓存而页面 (x+1) 没有被缓存,会发生什么?如果页面 x 的缓存已过时,则在页面 (x+1) 上,用户将看到相同的内容。或者更糟糕的是,如果用户从 x 页转到 (x-1) 页怎么办?他会错过一些条目!
如何实现缓存来避免这个问题?
【问题讨论】:
-
最好的“关键”是使用查询并创建SQL的哈希,然后您可以保持约定。或您的案例中的网址