7

インメモリ キャッシュを提供することで、データベース アクセスの量を削減しようとしています。セッションと Cookie を使用してキャッシュを取得できることは理解していますが、これはクライアントごとにしか機能しません。すべてのセッションで同じクエリが 1 回行われると、キャッシュは役に立たなくなります。しかし、データベースに一度だけアクセスしてキャッシュしたいのです。

サーバー側スクリプトからアクセスできるメモリ内にキャッシュを作成する方法はありますか? キャッシュデータをファイルに保存したくありません..

4

4 に答える 4

4

インストールされている場合はMemCacheを使用できます。

もう 1 つのオプションは、MySQL でストレージ タイプMEMORYのテーブルを作成することです。データベースは引き続き使用しますが、かなり高速になります。しかし、MemCache はデータベースの負荷を実際に削減します。別のサーバー上であっても、データベースの外部にデータをキャッシュできるからです。

于 2011-10-13T17:56:41.187 に答える
2

共有ホスティングスペースでは、memcacheを利用できない場合があります。その場合はAPCを確認してください。複数のマシンで実行している場合、Memcacheは非常に優れています。単一のWebサーバーでサイトを実行している場合、APCは同じジョブを実行します(オーバーヘッドが低くなります)。

于 2011-10-13T18:17:56.690 に答える
1

Memecached/Memcacheは、複数のサーバーが必要な場合、または複数のマシンでキャッシュにアクセスできるようにする場合に、最も広く使用されているソリューションです。

ただし、キャッシュをローカル (PHP コードを実行する同じマシン上) にしたいだけの場合は、他にいくらか簡単な選択肢があります。

APC モジュールapc_add、などを使用してメモリにデータを保存することもできapc_fetchます…</p>

または、標準ファイルをtmpfs. これには、完全に移植可能であるという利点があり、ファイルを使用するキャッシュ システムがある場合は非常に迅速にセットアップできます。

于 2011-10-13T19:04:46.273 に答える
0

MemCache を試す

Memcache モジュールは、非常に効果的なキャッシング デーモンである memcached への便利な手続き型およびオブジェクト指向インターフェイスを提供します。これは、特に動的な Web アプリケーションでデータベースの負荷を軽減するように設計されています。

于 2011-10-13T17:58:11.583 に答える