ホームページ > バックエンド開発 > PHPチュートリアル > PHP 分散キャッシュ memcached の使いこなしと操作

PHP 分散キャッシュ memcached の使いこなしと操作

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-23 13:38:03
オリジナル
876 人が閲覧しました

インターネットが台頭している今日、主要な Web サイトは大きなデータ フローの問題に直面しています。PHP 開発者として一般的に考えられる方法には、ページの静的処理とアンチウイルス処理が含まれます。 -盗難チェーン、アクセスを高速化するための CDN コンテンツ配布、mysql データベースの最適化とインデックス作成、Apache サーバー クラスターのセットアップ ()、現在普及しているさまざまな分散キャッシュ テクノロジ:


1. Memcached とは?

a.Memcached は、データベースの負荷を軽減するための動的 Web アプリケーション用の高性能分散メモリ オブジェクト キャッシュ システムです。データとオブジェクトをメモリにキャッシュしてデータベースの読み取り回数を減らすことにより、動的なデータベース駆動型の Web サイトの速度が向上します。 Memcached は、キーと値のペアを格納するハッシュマップに基づいています。そのデーモンは C で書かれていますが、クライアントは任意の言語で書くことができ、memcached プロトコルを通じてデーモンと通信します。


b.Memcached のキーは通常文字列であり、値を繰り返すことはできません。値は文字列、配列、値、オブジェクト、ブール値、バイナリ データ、画像、ビデオに入れることができます


c.Memcached のデフォルトのサービス ポートは次のとおりです。 11211

2. PHP で Memcached を使用する手順

<1>準備: Memcached サービスのインストール パッケージ: memcached-1.2.6-win32-bin.7z をダウンロードし、Memcached サービスの DLL ライブラリ: php_memcache にアクセスします。 .dll

www.memcached.org (公式 Web サイトにはアクセスできないようです。他の場所からダウンロードできます)

<2> パッケージ memcached-1.2.6-win32-bin.7z を解凍します (解凍して Web サーバーと同じディレクトリにコピーできます)、cmd を操作し、解凍したディレクトリに移動し、次のコマンドでインストールします: memcached.exe -d install


<3> インストールは完了です。 (インストールが完了したかどうかを判断するには、サービス リストで memcached サービスが利用可能かどうかを確認できます)、次のコマンドで cmd を開始します: memcached.exe -d start

具体的な操作は次のとおりです:



memcached サービスを開始したら、ダウンロードした php_memcache.dll を Web サーバーの php5 ディレクトリの下の ext ディレクトリに置きます


gt; php.ini を変更し、拡張ライブラリ php_memcache.dll をダウンロードし、Apache サーバーを再起動します


<6> Memcached の主な操作は、値の作成、読み取り、更新、削除です。詳細についてはマニュアルを参照してください。 、値を設定してから値を読み取るという簡単な操作を実行しましょう


a. 値の設定ページ

<?phpheader("Content-type:text/html;charset=utf-8");//创建Memcache对象$mem = new Memcache();  //连接Memcache服务器if(!$mem->connect("127.0.0.1")) {    echo "连接Memcache服务器失败!";}//设置,'myword'参数代表键key,'hello world'代表存放的值,MEMCACHE_COMPRESSED代表压缩内容,50代表存放时间,单位秒if ($mem->set('myword','hello world',MEMCACHE_COMPRESSED,50)){    echo "设置值成功!";}?>
ログイン後にコピー


注: 値がメモリに保存されている場合、時間は 30 日以上である必要があります、タイムスタンプを使用して 100 日を設定する必要があります: time()+3600*24*100 のように、0 を設定すると期限切れになりません

b. 値のページを読みます

<?phpheader("Content-type:text/html;charset=utf-8");$mem = new Memcache();  if(!$mem->connect("127.0.0.1")) {    echo "连接Memcache服务器失败!";}//读取键myword值$value = $mem->get('myword');if(!$value){    echo "读取失败!";}else{    echo "读取的值=".$value;}
ログイン後にコピー
c. 削除、更新されました。例:

<?phpheader("Content-type:text/html;charset=utf-8");//创建Memcache对象$mem = new Memcache();  //连接Memcache服务器if(!$mem->connect("127.0.0.1")) {    echo "连接Memcache服务器失败!";}//设置,'myword'参数代表键key,'hello world'代表存放的值,MEMCACHE_COMPRESSED代表压缩内容,50代表存放时间,单位秒if ($mem->set('myword','hello world',MEMCACHE_COMPRESSED,50)){    echo "设置值成功!";}//读取键myword值$value = $mem->get('myword');if(!$value){    echo "读取失败!";}else{    echo "读取的值=".$value;}//更新键值$mem->replace('myword','hello everybody!');$value = $mem->get('myword');if(!$value){    echo "读取失败!";}else{    echo "读取的值=".$value;}//删除键myword值$mem->delete('myword');$value = $mem->get('myword');if(!$value){    echo "读取失败!";}else{    echo "读取的值=".$value;}//关闭$mem->close();  ?>
ログイン後にコピー
注: mem オブジェクトの下には多くのメソッドがあり、マニュアルを読むことで学習できます。

<7> 複数の memcached サーバーの設定は、実際には 1 つの memcached サーバーと少し異なります。設定後、crud が動作するときに、接続プールに複数の memcached サーバーを追加します。対応するサーバーは、対応するアルゴリズムを通じてバランスよく接続され、対応する動作が実行される。


<?phpheader("Content-type:text/html;charset=utf-8");//创建Memcache对象$mem = new Memcache(); //添加多台memcached服务器$mem->addserver('192.168.0.1',11211); $mem->addserver('192.168.0.2',11211);$mem->addserver('192.168.0.3',11211);$mem->addserver('192.168.0.4',11211);//设置,'myword'参数代表键key,'hello world'代表存放的值,MEMCACHE_COMPRESSED代表压缩内容,50代表存放时间,单位秒if ($mem->set('myword','hello world',MEMCACHE_COMPRESSED,50)){    echo "设置值成功!";}//读取键myword值$value = $mem->get('myword');if(!$value){    echo "读取失败!";}else{    echo "读取的值=".$value;}?>
ログイン後にコピー

<8> Memcache へのアクセスはユーザーフリーであり、セキュリティを考慮する必要があります。通常、Memcache をイントラネット上に配置し、ファイアウォールを介して Memcache ポートへの外部ネットワーク アクセスを制限します。

<9> ;php.iniを変更することでセッション値をmemcacheサーバーに入れることができます

session.save_handler = filesをsession.save_handler = memcachedに変更します


session.save_path = "N;MODE;/path " を session に変更します。 save_path = "tcp://127.0.0.1:11211"







このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート