Filesystem Cache Adapter

This adapter offers improved application performance for those who cannot install tools like APCu or Redis in their environment. It stores the cache item expiration and content as regular files in a collection of directories on a locally mounted filesystem.

このアダプターは、環境に APCu や Redis などのツールをインストールできないユーザーのために、アプリケーションのパフォーマンスを向上させます。キャッシュ アイテムの有効期限とコンテンツを、ローカルにマウントされたファイル システム上のディレクトリのコレクションに通常のファイルとして格納します。

Tip

ヒント

The performance of this adapter can be greatly increased by utilizing a temporary, in-memory filesystem, such as tmpfs on Linux, or one of the many other RAM disk solutions available.

このアダプタのパフォーマンスは、Linux の tmpfs などの一時的なインメモリ ファイルシステムや、利用可能なその他の RAM ディスク ソリューションの 1 つを利用することによって大幅に向上させることができます。

The FilesystemAdapter can optionally be provided a namespace, default cache lifetime, and cache root path as constructor parameters:

FilesystemAdapter には、必要に応じて、名前空間、デフォルトのキャッシュの有効期間、およびキャッシュのルート パスをコンストラクターのパラメーターとして指定できます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use Symfony\Component\Cache\Adapter\FilesystemAdapter;

$cache = new FilesystemAdapter(

    // a string used as the subdirectory of the root cache directory, where cache
    // items will be stored
    $namespace = '',

    // the default lifetime (in seconds) for cache items that do not define their
    // own lifetime, with a value 0 causing items to be stored indefinitely (i.e.
    // until the files are deleted)
    $defaultLifetime = 0,

    // the main cache directory (the application needs read-write permissions on it)
    // if none is specified, a directory is created inside the system temporary directory
    $directory = null
);

Caution

注意

The overhead of filesystem IO often makes this adapter one of the slower choices. If throughput is paramount, the in-memory adapters (Apcu, Memcached, and Redis) or the database adapters (PDO) are recommended.

多くの場合、ファイルシステム IO のオーバーヘッドにより、このアダプターは低速の選択肢の 1 つになります。スループットが最も重要な場合は、インメモリ アダプター (Apcu、Memcached、および Redis) またはデータベース アダプター (PDO) をお勧めします。

Note

ノート

This adapter implements PruneableInterface, enabling manual pruning of expired cache items by calling its prune() method.

このアダプターは PruneableInterface を実装し、その prune() メソッドを呼び出すことで期限切れのキャッシュ項目の手動プルーニングを有効にします。

Working with Tags

In order to use tag-based invalidation, you can wrap your adapter in TagAwareAdapter, but it's often more interesting to use the dedicated FilesystemTagAwareAdapter. Since tag invalidation logic is implemented using links on filesystem, this adapter offers better read performance when using tag-based invalidation:

タグベースの無効化を使用するには、アダプタを TagAwareAdapter でラップできますが、専用の FilesystemTagAwareAdapter を使用する方が興味深い場合がよくあります。タグ無効化ロジックはファイルシステム上のリンクを使用して実装されるため、このアダプタは、タグベースの無効化を使用する場合により優れた読み取りパフォーマンスを提供します。
1
2
3
use Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter;

$cache = new FilesystemTagAwareAdapter();