memcachedの使い方

WBOY
リリース: 2016-06-13 13:07:20
オリジナル
1010 人が閲覧しました

memcachedの使い方は?
オンライン質問応答システムを作成しています。次の質問をクリックするたびに、質問を 1 つ更新します。
プロセス: 1. データベースから質問を取得します。 retrieval, $db->close()) 、次の質問で 2 ポイント。質問が完了するまで手順 1 と 2 を繰り返します。
これは、質問が取り出されるたびにデータベースに接続することに相当します。クラスメートが提案したように、データは memcached に保存できます。
これにより、データベースへの接続数を減らすことができます。
私が聞きたいのは、効果を達成するために memcached クラスをどこに置くべきかということです。
たとえば、最初の質問を取ります
まずデータベースに接続する必要があります
次に質問を取り出します
while($row=mysql_fetch_array($result){
$question[] =$row[question ];
}//これまでの質問はすべて削除されました
$mem = new Memcache; //データベース値の後に memcache クラスを置きます
$mem-> connect("127.0.0.1", 11211);
$mem->set("key",$question);
$question=$mem->get("key");
$db->close();
次に質問が来ます
1. 初めて質問を受けるときにのみデータベースに接続し、すべてのデータを $question イメージに割り当てるにはどうすればよいですか? memcache クラスで? このように書くと、値は memcache に割り当てられますが、次の質問をクリックすると、データベースに接続することと同じになります。
2. 最初の質問を読んだ後、私はコメントしました。最初の質問を読んだとき、質問はキャッシュに割り当てられているため、データベースに接続する必要はありませんが、次の質問をクリックしても何も読み込まれないと思います。最初の質問を読んだときにキャッシュしました。割り当てられた値はどこに行きましたか? ページを更新するとキャッシュ内の値が失われますか?
このクラスはどこで使用する必要があるのでしょうか?データベース接続の数を減らすために配置する必要がありますか? 使用されていることを願っています

-----解決策----------- ----------
You 上記のコードは、毎回データベースを読み取り、その値をキャッシュに書き込むことと同じです。 (false == $mem->get("key")) は、キーが存在するときに接続が存在しないように、データベースを読み取る前に使用する必要があります。
------解決策------------------
この注文

PHP コード
$mem = 新しい Memcache;
$mem->connect("127.0.0.1", 11211);
if(! $mem->get("key")) {
  //データベース接続クエリコード
  while($row=mysql_fetch_array($result){
    $question[]=$row[質問];
  }//これまでの質問はすべて解決されました
  $mem->set("キー",$question);
}
$question=$mem->get("キー");
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート