我正在寻找一种以编程方式更新我的Web应用程序中的缓存文件的方法。
md5()
对请求数组进行哈希处理。这给了我一个独特的$requestID
$requestID . '_' . $expiration
如果存在缓存页面,则会分析到期时间(前缀为文件名)。
如果缓存页面已过期,或者缓存页面不存在,则会正常处理请求,并为下一个请求缓存构建的页面。
除了缓存页面之外,我还将$_REQUEST
数组保存到单独的文件(requests.json
下面),这样我可以稍后从cronjob重新提交请求(以编程方式更新缓存)。
缓存目录如下所示。
/cache
/cached_page_1
/cached_page_2
/cached_page_3
/cached_page_4
/requests.json
requests.json
是一个json字符串,用于将requestIDs
(对我的应用程序发出的每个唯一请求)映射到$_REQUEST
数组。
array (size=3)
'requestID' => string '6a8d36967bd6c409b75b3667d364e0b2' (length=32)
'cachedFile' => string 'cache/cached_page_1' (length=80)
'requestArr' =>
array (size=2)
'q' => string '/mysite/blog' (length=20)
'title' => string 'Programming in PHP' (length=11)
我想以下列方式构建一个利用这些数据的cron作业。
cache
目录中的所有文件。这将确保调用上述过程中的步骤5 。$_REQUEST
数组(存储在requestArr
中)将请求重新提交给服务器。重新提交请求后,将更新缓存中的所有页面。
$_REQUEST
数组将请求重新提交给服务器?