memcached clientとしてのPHPの具体的な実装方法_PHPチュートリアル

WBOY
リリース: 2016-07-15 13:29:34
オリジナル
754 人が閲覧しました

過去の記事の紹介を通じて、memcached の具体的な動作原理を知ることができます。そこで、今日は実装方法を説明します PHP を memcached クライアントとして使用し、memcached サービスを呼び出してオブジェクト アクセス操作を実行するには 2 つの方法があります。

rree

ファーストタイプP HP は memcached クライアントとして機能します。PHP には memcache と呼ばれる拡張機能があり、以下で入手できます。 Linux では、コンパイル時に –enable-memcache[=DIR] オプションを指定する必要があります。Windows では、php.ini 内の php_memcache.dll の前のコメントを削除して使用できるようにします。

さらに、展開と再コンパイルによる問題を回避する別の方法として、php-memcached-client を直接使用する方法があります。

この記事では2番目の方法を使用しますが、拡張ライブラリよりも若干効率は悪くなりますが、大きな問題はありません。

まず、memcached-client.php をダウンロードします。memcached-client.php をダウンロードした後、このファイル内のクラス「memcached」を通じて memcached サービスを操作できます。実際、コード呼び出しは非常に単純です。使用される主なメソッドは、add()、get()、replace()、および delete() です。メソッドの説明は次のとおりです。 = 0)

memcached にオブジェクトを書き込みます。$key は、書き込まれたオブジェクトのデータです。$exp は、秒単位の有効期限です。

get ($key)

from memcached オブジェクトの一意の識別子 $key からオブジェクト データを取得します。

replace ($key, $value, $exp=0)

$value を使用して、オブジェクトの内容を memcached の識別子 $key に置き換えます。 パラメーターは次のとおりです。 add( ) メソッドと同じです。 $key オブジェクトが存在する場合にのみ機能します。

delete ($key, $time = 0)

memcached 内の $key という識別子を持つオブジェクトを削除します。$time はオプションのパラメータ。削除までの待機時間を示します。

以下は、識別子「mykey」を持つオブジェクト データへのアクセス操作を実行する単純なテスト コードです:

PHP を memcached クライアントとして実装するのは非常に簡単ですか? 実際のアプリケーションでは、データベースは通常、次の結果セットです。クエリは memcached に保存され、次回のアクセス時にデータベース クエリ操作を実行せずに memcached から直接取得できるため、データベースへの負担が大幅に軽減されます。通常、SQL ステートメント md5() の後の値が一意の識別子のキーとして使用されます。以下は、memcached を使用してデータベース クエリ結果セットをキャッシュする例です (このコード スニペットは上記のコード例に続きます)。

<ol class="dp-xml">
<li class="alt">
<span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN></FONT></STRONG><SPAN> </SPAN></SPAN><LI class=""><SPAN>// 包含 memcached 类文件  </SPAN><LI class=alt><SPAN>require_once('memcached-client.php');  </SPAN><LI class=""><SPAN>// 选项设置  </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>options</FONT></SPAN><SPAN> = </SPAN><SPAN class=attribute-value><FONT color=#0000ff>array</FONT></SPAN><SPAN>(  </SPAN></SPAN><LI class=""><SPAN>    'servers' =</SPAN><SPAN class=tag><STRONG><FONT color=#006699>></span></font></strong></span><span> array('192.168.1.1:11211′), //memcached 服务的地址、端口,可用多个数组元素表示多个 memcached 服务  </span>
</li>
<li class="alt">
<span>    'debug' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> true, //是否打开 debug  </span>
</li>
<li class="">
<span>    'compress_threshold' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> 10240, //超过多少字节的数据时进行压缩  </span>
</li>
<li class="alt">
<span>    'persistant' =</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> false //是否使用持久连接  </span>
</li>
<li class=""><span>    );  </span></li>
<li class="alt"><span>// 创建 memcached 对象实例  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">mc</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">new</font></span><span> memcached($options);  </span>
</li>
<li class="alt"><span>// 设置此脚本使用的唯一标识符  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">key</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'mykey'</font></span><span>;  </span>
</li>
<li class="alt"><span>// 往 memcached 中写入对象  </span></li>
<li class="">
<span>$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>add($key, 'some random strings');  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">val</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key);  </span>
</li>
<li class="">
<span>echo "n".str_pad('$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>add() ', 60, '_')."n";  </span>
</li>
<li class="alt"><span>var_dump($val);  </span></li>
<li class=""><span>// 替换已写入的对象数据值  </span></li>
<li class="alt">
<span>$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>replace($key, array('some'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'haha', 'array'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'xxx'));  </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">val</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key);  </span>
</li>
<li class="alt">
<span>echo "n".str_pad('$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>replace() ', 60, '_')."n";  </span>
</li>
<li class=""><span>var_dump($val);  </span></li>
<li class="alt"><span>// 删除 memcached 中的对象  </span></li>
<li class="">
<span>$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>delete($key);  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">val</font></span><span> = $mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>get($key);  </span>
</li>
<li class="">
<span>echo "n".str_pad('$mc-</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>delete() ', 60, '_')."n";  </span>
</li>
<li class="alt"><span>var_dump($val);  </span></li>
<li class="">
<span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span>
</li>
</ol>
ログイン後にコピー
PHP を memcached クライアントとして使用すると、データベース接続とクエリ操作が削減され、データベースの負荷が軽減され、スクリプトの実行速度も向上することがわかります。

http://www.bkjia.com/PHPjc/446355.html

www.bkjia.com

本当

http://www.bkjia.com/PHPjc/446355.html

技術記事

memcached の具体的な動作原理は、以前の記事の紹介を通じて知ることができます。そこで、今日はその実装方法を説明します。PHP を memcached クライアントとして使用するには 2 つの方法があります。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!