4

apc_store()いくつかの結果をキャッシュするために使用したい。

しかし、データがどこに保存されるのか、そしてその制限は何かを知る必要があります。

常にメモリに保存されますか?またはディスクにも書き込みますか?あまり頻繁にアクセスされないデータはディスクに保存することをお勧めします。そのために別のキャッシュシステムを使用する必要がありますか?

これが限界ですか?apc.shm_size = 32MB. もしそうなら、それを超えるとどうなりますか?

4

3 に答える 3

11

経由でAPC変数キャッシュに保存されたデータapc_store()は、常にメモリに保存されます。これが理にかなっているよりも多くのデータを保存する必要がある場合は、他のキャッシュソリューションを自分で考え出す必要があります。

apc.shm_size構成ディレクティブは、オペコードとユーザー変数の両方に使用されるAPC共有メモリキャッシュ全体のサイズを設定します。ここで指定されているよりも多くのデータをキャッシュに書き込むと、要素は、最も使用頻度の低いものから順にキャッシュから削除されます。あなたのコードはこれを処理できる必要があります-結局のところ、それはデータベースではなくキャッシュです。

于 2013-02-03T23:44:43.307 に答える
3

APCはそれをメモリに保存します。

apc.shm_sizeを使用して使用するサイズを設定できます

これは、APCがどのように機能するかを説明するリンクです。 http://lampzone.wordpress.com/2010/03/26/how-does-apc-work/

そして、すべてのAPC設定のリスト http://php.net/manual/en/apc.configuration.php

于 2013-02-03T23:44:14.683 に答える
2

APC は常にデータをメモリに格納します。それは、そのために設計されたものであり、それ以外には何もありません。APC でデータをディスクに書き込むことはできませんが、もちろん、キャッシュのニーズに合わせていくつかの異なるストレージ アダプターを実装できます。ディスクに保存したいものがある場合は、ファイル アダプタを実装します。異なるサイズ設定は、実際に APC に割り当てるメモリの量であり、それを超えると、APC は LIFO のダンプを開始します。これはパフォーマンスにのみ影響し、他には何も影響しません。アプリは、キャッシュの有無にかかわらず機能できる必要があります。そうでない場合は、永続化のためにキャッシュするという考えを悪用しています。

于 2013-02-03T23:48:27.037 に答える