Memcached は、データベースの負荷を軽減し、動的アプリケーションのアクセス速度を向上させるために使用される、高性能の分散メモリ オブジェクト キャッシュ システムです。 Memcached は、LiveJournal.com のアクセス速度を向上させるために Danga Interactive によって開発されました。 LJ には 1 秒あたり数千の動的ページ ビューがあり、700 万人のユーザーがいます。 Memcached はデータベースの負荷を大幅に軽減し、リソースをより適切に割り当て、より高速なアクセスを提供します。
PHP チュートリアルの memcached の例
Windows での Memcache のインストール:
1. memcache の Windows 安定バージョンをダウンロードし、解凍して特定のディスク (c: memcached
など) に置きます。
2. ターミナル (つまり、cmd コマンド インターフェイス) に「c:memcachedmemcached.exe -d install
のインスタレーション
3. 次に「c:memcachedmemcached.exe -d start」と入力して起動します。注: 後で
memcached は Windows を起動するたびに、Windows のサービスとして自動的に起動されます。これでサーバー側のインストールが完了しました
以上です。
4. http://cmy2009.ihost.tw/download (php_memcache アドレス) をダウンロードします。対応するものを自分で見つけてください
phpバージョンファイル
5. c:winntphp.ini に「extension=php_memcache.dll」という行を追加します
6. Apache を再起動し、phpinfo を確認します。memcache がある場合は、インストールが成功したことを意味します。
memcached の基本設定:
-p リスニングポート
-l 接続の IP アドレス。デフォルトはローカルマシンです
-d start は memcached サービスを開始します
-d restart memcached サービスを再起動します
-d stop|shutdown 実行中の memcached サービスをシャットダウンします
-d install memcached サービスをインストールします
-d アンインストール memcached サービスをアンインストールします
-u として実行 (root として実行する場合のみ有効)
-m 最大メモリ使用量 (MB 単位)。デフォルトは64MB
-m メモリが使い果たされた場合、項目を削除する代わりにエラーを返します
-c 同時接続の最大数、デフォルトは 1024 です
-f ブロック サイズの増加係数、デフォルトは 1.25 です
-n 最小割り当てスペース、キー + 値 + フラグのデフォルトは 48
-h ヘルプを表示します
memcache 環境テスト:
次の php ファイルを実行して出力があれば、環境は正常にセットアップされています。 memcache の魅力を理解し始めましょう
!
$memcache = memcache_connect('localhost', 11211);
if ($memcache) {
$memcache->set("str_key", "memcached に保存する文字列");
$memcache->set("num_key", 123);$object = 新しい標準クラス;
$object->attribute = 'テスト';
$memcache->set("obj_key", $object);$array = array('assoc'=>123, 345, 567);
$memcache->set("arr_key", $array);var_dump($memcache->get('str_key'));
var_dump($memcache->get('num_key'));
var_dump($memcache->get('obj_key'));
}
他に{
echo "memcached への接続に失敗しました";
}
?>
memcached は、データベースの負荷を軽減し、動的アプリケーションのアクセス速度を向上させるために使用される、高性能の分散メモリ オブジェクト キャッシング システムです。
Memcached は danga interactive によって開発され、livejournal.com のアクセス速度を向上させるために使用されます。 lj には 1 秒あたり数千の動的ページ ビューがあり、700 万人のユーザーがいます。 Memcached はデータベースの負荷を大幅に軽減し、リソースをより適切に割り当て、より高速なアクセスを提供します。
これを行うためにデータベースを使用しないのはなぜでしょうか?
使用するデータベースの種類 (ms-sql、oracle、postgres、mysqltutorial-innodb など) に関係なく、トランザクション (酸、アトミック性、一貫性、分離、耐久性) の実装には、特に次の場合に多くのオーバーヘッドが必要です。ハードディスクを使用すると、クエリがブロックされる可能性があります。トランザクションを含まないデータベース (mysql-myisam など) を使用する場合、上記のオーバーヘッドは存在しませんが、読み取りスレッドが書き込みスレッドによってブロックされる可能性があります。
memcached はブロックすることがなく、非常に高速です。