APCでさまざまな種類のデータを管理するにはどうすればよいですか?APCはデータをキーと値のペアで保存するので、さまざまな種類のオブジェクトを傷つけることができるようにデータを保存する方法は?たとえば、セッションデータとその他のキャッシュ用オブジェクトを保存したい。
最初は、クラス名にidを追加して、キーとして保存し、オブジェクトを値として保存することを考えています。私はそれよりもはるかに良い方法があると信じています。
APCでさまざまな種類のデータを管理するにはどうすればよいですか?APCはデータをキーと値のペアで保存するので、さまざまな種類のオブジェクトを傷つけることができるようにデータを保存する方法は?たとえば、セッションデータとその他のキャッシュ用オブジェクトを保存したい。
最初は、クラス名にidを追加して、キーとして保存し、オブジェクトを値として保存することを考えています。私はそれよりもはるかに良い方法があると信じています。
APC はキー値システムを使用して値を保存します。セッションを保存する場合、各 APC キーは一意である必要があります。sessid_
セッションキーはすでに一意であるため、ID の前に次のようなものを追加するよりも難しくありません。
$key = 'sessid_'.session_id();
apc_add($key, $value, 3600 * 6);
APC はおそらく問題なく動作しますが、最適なストレージ メカニズムではない可能性があります。APC のデータストアは、定数、構成、カウンター、グローバルに使用される文字列など、一般的に使用されるデータの保存に適しています。さらに、APC にデータを保存すると、読み書きするたびにデータがシリアル化されてからシリアル化解除されます。セッションは通常、配列やオブジェクトなどに含まれているため、これは最適ではありません。
セッションは一時的なものであり、通常、必要に応じて大幅に変更されます。キャッシュのポイントは、データを書き込むよりも多くのデータを読み取ることを意図しているということです。セッション データが頻繁に変更される場合 (ユーザーが最後にアクティブだった時期、ログインまたはログアウトの頻度など) は、キャッシュする目的に反します。そのような場合は、おそらくデータベースの方が適しています。また、古き良き MySQL である必要はありません。そこには多くの種類のデータベースがあります。いくつかは他のものよりも適しています。