【发布时间】:2009-09-01 14:50:19
【问题描述】:
我正在开发一个搜索应用程序,该应用程序使用具有 16 个过滤器选项的表单,这些选项是 1(已选择)或 0(未选择)。使用 GET 请求通过 AJAX 检索 JSON 格式的结果。
查询字符串如下所示:
filter_1=0&filter_2=1 ...省略... &filter_16=1&page=20
每个搜索结果至少有 2 个页面可供用户浏览。
我的问题是:如何根据输入参数缓存搜索结果?我的第一个想法是 md5 请求参数,然后使用哈希作为文件名编写缓存文件。
每次收到新请求时,我都会搜索缓存文件,如果存在,则使用该文件中的数据,而不是查询数据库并将行转换为 json 结果。
但这似乎不是一个好主意,因为搜索选项很多。会有很多缓存文件(16 * 16 ???),并且由于该应用程序仅由少数用户使用,我怀疑所有可能的组合都会被缓存。每个结果都包含 X 页,因此每个页面都是它自己的缓存文件 (16 * 16 * X)。
对于这样的应用程序来说,什么是好的缓存策略?是否真的可以实现缓存?
【问题讨论】: