0

私は.txtファイルを使用して自分用のキャッシュシステムを作成しています.キャッシュ時間は物事によって異なるため、どちらが良いでしょうか:

(「098f6bcd4621d373cade4e832627b4f6」をテスト md5 ハッシュとして使用します)

a) 「098f6bcd4621d373cade4e832627b4f6-180.txt」のようにファイル名に有効期限を秒単位で追加します (キャッシュは 180 秒に制限されます)。

b) ファイルの最初の行に有効期限を追加し、2 行目以降にキャッシュされたものを追加します。ファイルに「098f6bcd4621d373cade4e832627b4f6.txt」という名前を付けます。

a)では、ディレクトリ全体をスキャンし、すべてのファイル名を「-」で分解し、爆発[0]がハッシュと等しいかどうかを確認する必要があります。

b) を使用すると、file_exists() を使用して最初の行を読み取って、キャッシュがまだ有効かどうかを確認できます。

どちらを使用する必要がありますか、または ac) 方法はありますか?

編集:明確かどうかはわかりませんが、パフォーマンスに関して最善の方法を見つけようとしています。

4

2 に答える 2

0

はい、いくつかの DB 処理とunlink().

例えば:

新しいキャッシュ ファイルを作成するときは、ファイル名をテーブルに入れ、有効期限を設定します。次に、スクリプトを実行するときに、有効期限が現在かどうかを確認し、そうであればファイルのリンクを解除します。

4 番目の方法はまったく効率的ではありませんが、機能します。

foreach(glob('files/*') as $file)
{
  if(filemtime($file) < strtotime('-180 seconds'))
  {
    unlink($file);
  }
}

私はあなたの最初のオプションを使用しますが、より良い形式で...expirationDate_crc32hash.file. 例: 180_127264de.txt

次に、_、使用strstr、またはで爆発する方が簡単ですsubstr

于 2013-08-24T18:48:12.427 に答える