我有一個簡單的PHP腳本,用於計算給定字符串輸入的一些內容。它將結果緩存到數據庫,我們偶爾會刪除超過特定天數的條目。這種基於文件的數據庫方法的可擴展性如何?
我們的程序員來實現這個數據庫爲:
function cachedCalculateThing($input) {
$cacheFile = 'cache/' . sha1($input) . '.dat';
if (file_exists($cacheFile) {
return json_decode(file_get_contents($cacheFile));
}
$retval = ...
file_put_contents(json_encode($retval));
}
function cleanCache() {
$stale = time() - 7*24*3600;
foreach (new DirectoryIterator('cache/') as $fileInfo) {
if ($fileInfo->isFile() && $fileInfo->getCTime() < $stale) {
unlink($fileInfo->getRealPath());
}
}
我們使用Ubuntu LAMP和ext3。高速緩存查找的條目數量是多少?是否爲非常量或違反硬限制?
我可以建議http://serverfault.com/questions/43133/filesystem-large-number-of-files-in-a-single-directory作爲一個很好的起點嗎?海事組織更像是一個「明顯較慢」的問題(也就是說,減速是否會影響工作流程)而不是「非常量」(我認爲這種系統本質上)。 – fvu