Web アプリケーションの開発に伴い、より優れたパフォーマンスと高いスケーラビリティを提供するために、完全なメモリ キャッシュ システムを使用するアプリケーションがますます増えています。多くの場合、Memcached が推奨されるソリューションになります。この記事では、PHP と Memcached の統合的な使用法と、関連する使用上のヒントを紹介します。
Memcached は、動的 Web アプリケーションを高速化するために使用できる高性能のメモリ内オブジェクト キャッシュ システムです。 Memcached はもともと Brad Fitzpatrick によって作成され、主な目的は彼の LiveJournal ソーシャル ネットワーキング Web サイト用でした。 Memcached は分散キャッシュ システムとして設計されているため、スケーラブルで高性能です。
PHP での Memcached の使用
PHP の PECL 拡張機能を使用すると、PHP アプリケーションと Memcached を簡単に統合できます。以下は、PHP を使用して Memcached の基本的な get および set 操作を実装する簡単な例です。
<?php //连接Memcached服务器 $memcached = new Memcached(); $memcached->addServer("localhost", 11211); //存储数据 $memcached->set("key1", "value1"); //获取数据 $value = $memcached->get("key1"); echo $value; ?>
上の例では、最初に Memcached オブジェクトを使用して Memcached サーバーに接続し、次に ## を使用します。 #set() 関数はキーと値のペアをキャッシュに保存し、最後に
get() 関数を使用してキャッシュからキー値を取得します。非常にシンプルで直感的です。
<?php //连接Memcached服务器 $memcached = new Memcached(); $memcached->addServer("localhost", 11211); //查询MySQL数据库 $results = mysqli_query($con, "SELECT * FROM users WHERE status=1"); //循环结果 while($row = mysqli_fetch_array($results)) { //将结果存储到缓存中 $memcached->set($row['user_id'], $row); } //关闭MySQL连接 mysqli_close($con); //获取结果 $user_id = 123; $result = $memcached->get($user_id); ?>上の例では、最初に Memcached サーバーに接続し、MySQL データベースにクエリを実行して、結果をキャッシュ。すると、具体的な結果が得られます。結果がキャッシュされている場合は、結果がすぐに返されるため、結果を繰り返しクエリする必要がなくなります。 実際のアプリケーションで、Memcached を使用して巨大なデータ オブジェクトをキャッシュする場合は、Memcached の分散メカニズムを使用することをお勧めします。これについては次のセクションで説明します。 Memcached を使用するためのいくつかのヒントMemcached を使用してパフォーマンスと信頼性を向上させるためのいくつかのヒントを次に示します:
<?php //连接Memcached服务器 $memcached = new Memcached(); $memcached->addServer("localhost", 11211); //以自增方式计数 $key = "counter"; $counter = $memcached->increment($key); //获取计数器结果 echo "Counter: ".$counter; ?>上の例では、Memcached オブジェクトを使用して Memcached サーバーに接続し、
increment() 関数を使用してカウンタ値を 1 ずつインクリメントしました。これにより、複数の同時リクエストによるカウンターの競合が回避されます。
<?php //连接Memcached服务器 $memcached = new Memcached(); $memcached->addServer("localhost", 11211); //设置过期时间 $memcached->set("key1", "value1", 3600); //获取具有过期时间的键值对 $value = $memcached->get("key1"); //除了过期时间之外,可以使用其他选项 $memcached->set("key1", "value1", 3600, 0); $memcached->set("key1", "value1", 0, 100); ?>上の例では、まず
set() 関数を使用してキーと値のペアを保存し、有効期限を設定します。次に、
get() 関数を使用して、このキーと値のペアを取得します。キャッシュ内のデータの有効期限が切れている場合は、null 値が返されます。
<?php //连接Memcached服务器 $memcached = new Memcached(); $memcached->addServers(array( array("server1", 11211, 33), array("server2", 11211) )); //保存数据到Memcached服务器 $memcached->set("key1", "value1"); //从Memcached服务器获取数据 $value = $memcached->get("key1"); ?>上の例では、
addServers() 関数を使用して複数の Memcached サーバーをセットアップし、リクエストを複数のサーバーに分散します。次に、
set() 関数と
get() 関数を使用して、サーバーにデータを保存および取得します。この分散メカニズムは、Memcached の最も強力なスケーラビリティ メカニズムの 1 つです。
以上がPHP と Memcached の統合と使用の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。