過去の記事の紹介を通じて、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>
http://www.bkjia.com/PHPjc/446355.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/446355.html技術記事 memcached の具体的な動作原理は、以前の記事の紹介を通じて知ることができます。そこで、今日はその実装方法を説明します。PHP を memcached クライアントとして使用するには 2 つの方法があります。