Memcached は、データベースの負荷を軽減する動的 Web アプリケーション用の高性能分散メモリ オブジェクト キャッシュ システムです。データとオブジェクトをメモリにキャッシュしてデータベースの読み取り回数を減らすことにより、動的なデータベース駆動型の Web サイトの速度が向上します。
Memcached は、キーと値のペアを格納するハッシュマップに基づいています。そのデーモンは C で書かれていますが、クライアントは任意の言語で書くことができ、memcached プロトコルを通じてデーモンと通信します。
保存方法:
パフォーマンスを向上させるため、memcachedに保存されたデータはmemcachedの内蔵メモリストレージスペースに保存されます。データはメモリ内にのみ存在するため、memcached を再起動してオペレーティング システムを再起動すると、すべてのデータが消えます。また、コンテンツ容量が指定値に達すると、LRU(Least Recent Used)アルゴリズムに基づいて、未使用のキャッシュが自動的に削除されます。 Memcached 自体はキャッシュ用に設計されたサーバーなので、データの永続性はあまり考慮されていません。
ヒント:
多くの言語、主に Perl と PHP で memcached に接続するためのクライアントが実装されています。
1. ここではWindows環境のインストールを紹介します。
1. memcache の Windows 安定バージョンをダウンロードし、解凍して、c: memcached などの特定のディスクに置きます
2. cmd に「c:memcachedmemcached.exe -d install」と入力してインストールします
3. 次に「c:memcachedmemcached.exe -d start」と入力して起動します。
今後、Windowsを起動するたびにmemcachedがWindowsのサービスとして自動的に起動されるようになります。これでサーバー側のインストールが完了しました。
4. とてもシンプルです。しかし、まだ終わっていません。memcached キャッシュ サーバーをインストールしただけで、php には関連付けられていません。したがって、phpプログラムでは使用できません。
私のphpバージョンは5.2.17なので、ダウンロードしたphp_memcache.dllも対応しているはずです。 PHP が 5.3 以降の場合は、ここからダウンロードできます
php_memcache-cvs-20090703-5.3-nts-VC6-x86.zip
インストールは通常の拡張機能の追加とまったく同じで、DLL ファイルを php ディレクトリの ext ディレクトリにコピーしてから、
extension=php_memcache.dll を php.ini に追加し、サーバーを再起動すると、phpinfo で構成情報を確認できるようになります。
2. CentOS でのインストール
yumをインストールします -y memcachedをインストールします
ブート時に開始するように設定します chkconfig --level 2345 memcached on
開始と停止 /etc/init.d/memcached start|stop
追加: インストールに他のサポートがない場合は、次のことができます:
yumグループインストール「開発ツール」
共通操作
Memcache::add 値を追加します。すでに存在する場合は false を返します
Memcache::addServer 使用するサーバーアドレスを追加します
Memcache::close Memcache オブジェクトを閉じます
Memcache::connect Memcache オブジェクトを作成します
Memcache::debug 制御デバッグ機能
Memcache::decrement 保存されたキーの値に対して減算演算を実行します
Memcache::delete キー値を削除します
Memcache::flush キャッシュされたデータをすべてクリアします
Memcache::get キー値を取得します
Memcache::getExtendedStats プロセス プール内のすべてのプロセスの実行中のシステム統計を取得します
Memcache::getServerStatus サーバーを実行するためのパラメータを取得します
Memcache::getStats サーバーの実行統計をいくつか返します
Memcache::getVersion 実行中の Memcache のバージョン情報を返します
Memcache::increment 保存されたキーの値に対して加算演算を実行します
Memcache::pconnect Memcache 永続接続オブジェクトを作成します
Memcache::replace R は既存のキーを上書きします
Memcache::set 値を追加します。すでに存在する場合は上書きします
Memcache::setCompressThreshold 一定サイズ以上のデータを圧縮します
Memcache::setServerParams 実行時にサーバーパラメータを変更します
リーリーmemcached の動作原理:
まず、memcached は 1 つ以上のサーバーでデーモンとして実行され、クライアント接続操作をいつでも受け入れます。現在知られているクライアント API には、Perl/PHP/Python/Ruby/Java/C#/ などがあります。 Cなど
PHP と他のクライアントが memcached サービスとの接続を確立したら、次にアクセスするオブジェクトには一意の識別子キーがあり、このキーを介してアクセス操作が実行されます。memcached 内のオブジェクトは実際にメモリに配置されます。これが、memcached が非常に効率的かつ高速である理由です。これらのオブジェクトは永続的ではないため、サービスが停止されると内部のデータが失われることに注意してください。
memcachedb:
MemcacheDB は、分散型のキーと値の永続ストレージ システムです。これはキャッシュ コンポーネントではなく、オブジェクト アクセスに基づいた、信頼性が高く、高速かつ永続的なストレージ エンジンです。このプロトコルは memcache (不完全) と一致しているため、多くの memcached クライアントが接続できます。 MemcacheDB は永続ストレージ コンポーネントとして Berkeley DB を使用するため、Berkeley DB の多くの機能をサポートします。
私たちは巨人の肩の上に立っています。 MemcacheDB のフロントエンド キャッシュは Memcached です
フロントエンド: memcached のネットワーク層
バックエンド: BerkeleyDB ストレージ
memcached と Smarty の関係と違いは何ですか?
Memcache は、キャッシュをメモリに記録する高性能の分散メモリ オブジェクト キャッシュ システムです。
たとえば、データベースからリスト表示を取得するが、毎回データベースを読みたくない場合は、キャッシュを使用する必要があり、メモリにレコードを保存する memcache もその 1 つですを使用します。
例えば、dbを再取得してデータを表示したい場合は、 db -> memcache -> client
まずmemcacheにデータがあるかどうかを判断し、ない場合はDBを読み込み、dbで取得したレコードをmemcacheに保存します
次回レコードを読み取る必要があるときは、memcache で直接読み取ることができるため、データベースの負担を分散でき、はるかに高速になります。
Smarty は PHP で書かれたテンプレート エンジンです。その目的は、PHP プログラマーをフロントエンド担当者から分離し、プログラマーがフロントエンド担当者のページ デザインに影響を与えることなくプログラムの論理コンテンツを変更できるようにすることです。
smarty は MVC 構造のビューで実行されます。
たとえば、phpで変数を表示したい場合は、echo $a;と記述する必要があります。
smartyを使用する場合は、このように{$a}を記述する必要があります。コンパイル後、自動的にecho $a;が表示されます。これは同じです。smartyのキャッシュは、phpが実行された後でのみブラウザに出力できます。 php を実行して html 出力を生成するには計算が必要で、smarty は以前に実行した php によって生成された html を保存し、この php を再度呼び出すと、前の html がキャッシュとして機能します。
memcache と Smarty は互いに機能が異なり、関連性がありません。