ホームページ  >  記事  >  バックエンド開発  >  memcache の使用について (初級の質問)、memcache は設定されていますが、それを使用してアクセスを高速化するにはどうすればよいですか?

memcache の使用について (初級の質問)、memcache は設定されていますが、それを使用してアクセスを高速化するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:39:52763ブラウズ

タイトル通り

私はインターネットで多くの情報を読みましたが、主に memcache の構成とインストール、機能リストについてです

設定が完了したので、echo $memcache->getVersion を使用してバージョンを出力することもできます();


さらに進める方法 応答速度を上げるための操作

たとえば、非常に複雑な SQL ステートメントの実行に時間がかかることがわかりました

この SQL ステートメントをどのように操作するか


説明が十分に明確ではありません。教えてください。最善を尽くします。 .

ありがとう~~


ディスカッションへの返信 (解決策)

アプリケーションのシナリオについての考え方が間違っているようです。 ..

SQL の最初の問題は、ステートメントを最適化することです

もちろん、テーブルを一時メモリ テーブル処理に置くことを検討することもできます

タイトルの通り

私はインターネットで多くの情報を読みました。 memcache の設定とインストール、および関数リスト

設定が完了したので、echo $memcache->getVersion(); を使用してバージョンを出力することもできます


応答速度を上げるためにさらに操作を実行する方法

たとえば、非常に複雑な SQL ステートメントの実行には長い時間がかかることがわかりました

この SQL ステートメントをどのように操作するのですか?


説明が十分に明確でない場合は、教えてください。最善を尽くして説明します。それは…

ありがとう~~



memcache は mysql のプレッシャーを共有できます。
たとえば、実行する select read ステートメントがある場合、データベースを読み取る前に毎回 memcache キャッシュから読み取ります。読み取れない場合は、mysql から読み取り、内容をキャッシュに書き込んで、読み取れるようにします。次回はキャッシュから読み取られます。
率直に言うと、memcache はデータベース サービスの読み取り負荷を軽減し、キャッシュされ、迅速かつ低負荷で読み取ります。

「たとえば、非常に複雑な SQL ステートメントの実行には時間がかかることがわかりました。それを高速化したい場合は、SQL ステートメントを最適化するしかありません。」

この文が読み取り操作である場合、キャッシュに書き込むことができ、その後の読み取りは非常に高速になります。

さらに、データベースが更新および削除された場合は、キャッシュにも注意を払う必要があります。 ~~~

もちろん、最初に可能な限り最適化することを考慮する必要があります

次に、キャッシュを高速化することを期待して実行する必要があります

それでは、各クエリを set または (そして) get する必要がありますか?

それは非常に面倒ではありませんか?

Memcache はデータベースへの負担を軽減できません
次回使用するためにクエリ結果を memcache に保存する予定がある場合、次回は常に古いデータを取得することになりますか?データベース内のデータが更新されたかどうかを確認したい場合、何をキャッシュすればよいでしょうか?

それでは、memcache はどのようなシナリオに適しているのでしょうか?
プログラムが既にファイルまたはデータベースを使用して中間結果をキャッシュしている場合、memcache を使用するとキャッシュのパフォーマンスを向上させることができます

memcache ではデータベースへの負荷を軽減できません

次のクエリ結果を memcache に保存する予定がある場合を使用すると、次回は常に古いデータが取得されますよね?
ライブラリ内のデータが更新されたかどうかを確認する必要がある場合、キャッシュはどうすればよいでしょうか?

それでは、memcache はどのようなシナリオに適しているのでしょうか?
プログラムが中間結果をキャッシュするために既にファイルまたはデータベースを使用している場合、memcache を使用するとキャッシュのパフォーマンスが向上します


memcache のアプリケーションを説明するために、もう少し具体的な例を挙げていただけますか?

===== ======
次に、ユーザーが興味のあるさまざまな種類の情報をクエリしたいと思います。さまざまな条件の概要を個別に確認してから、情報概要テーブルでクエリを実行する必要があります。この場合、memcache を使用するのが適切ですか。ケース (さまざまな条件の要約結果をキャッシュし、有効期限を設定します)
キャッシュは主に、天気予報、毎日のプロモーション ページなど、一定期間更新されず、頻繁にデータベースに接続されるページやプログラムに使用されます。これらの訪問は比較的大きいため、ニーズに応じて毎日 8 時に更新したり、複数の時間帯に分割したりするなど、長い更新キャッシュ時間制限を必要としません


タイトルの通りです

私はインターネットで多くの情報を読みましたが、主に memcache の設定とインストール、機能リストについてです

設定が完了したので、echo $memcache- を使用してバージョンを出力することもできます>getVersion();


応答速度を上げるためにさらに操作を実行する方法


たとえば、非常に複雑な SQL ステートメントの実行には長い時間がかかることがわかりました

この SQL ステートメントを操作するには?


説明が十分に明確でない場合は、教えてください できるだけ詳しく説明してください...

ありがとう~~



memcache は、mysql のプレッシャーを共有できます。
たとえば、実行する select read ステートメントがある場合、データベースを読み取る前に毎回 memcache キャッシュから読み取ります。読み取れない場合は、mysql から読み取り、内容をキャッシュに書き込んで、読み取れるようにします。次回はキャッシュから読み取られます。
率直に言うと、memcache はデータベース サービスの読み取り負荷を軽減し、キャッシュされ、迅速かつ低負荷で読み取ります。

「たとえば、非常に複雑な SQL ステートメントの実行には時間がかかることがわかりました。それを高速化したい場合は、SQL ステートメントを最適化するしかありません。」

この文が読み取り操作である場合、キャッシュに書き込むことができ、その後の読み取りは非常に高速になります。

さらに、データベースが更新および削除された場合は、キャッシュにも注意を払う必要があります。 ~~~






長女はPHPをやっていますか?

もちろん、最初に可能な限り最適化することを考慮する必要があります

次に、高速化を目指してキャッシュを実行する必要があります

それでは、すべてのクエリで set または (そして) get を行う必要がありますか?

そうではありません。それほど面倒ではありません


プログラムが中間結果をキャッシュするために既にファイルまたはデータベースを使用している場合、memcache を使用するとキャッシュのパフォーマンスが向上します

memcache は負荷を軽減できません。データベース
それがあなたの計画である場合、次回使用するためにクエリ結果を memcache に保存すると、次回は常に古いデータが取得されるのではないでしょうか
データベース内のデータが更新されたかどうかを確認したい場合は、何をすべきですか?キャッシュはどうするの?

それでは、memcache はどのようなシナリオに適しているのでしょうか?
プログラムが既にファイルまたはデータベースを使用して中間結果をキャッシュしている場合、memcache を使用するとキャッシュのパフォーマンスが向上します


プログラムが既にファイルまたはデータベースを使用して中間結果をキャッシュしている場合、memcache を使用するとキャッシュのパフォーマンスが向上します
しませんこの文を理解してください

端的に言えば、Memcache はメモリ キャッシュ技術であり、キャッシュ方法は状況によって異なります。

頻繁に読み取られ、毎回の繰り返し率が高く、データ更新頻度が低いデータの場合、Memcache はシステムの応答速度を最適化できます。

一般に、Memcache の使用はいくつかのステップに分かれています:

1. コード内で、Memcache オブジェクトをインスタンス化します
$mem = new Memcache;
$mem->addserver('127.0.0.1',11211) ;

2. データを取得した後、そのデータを Memcache にキャッシュします。次の例では、$data は、Memcache にキャッシュされたデータの一意の識別子と見なされます。 >add($key, $data,MEMCACHE_COMPRESSED,60);

3. データが必要な場合は、$key に基づいて Memcache からデータを取得します
$val = $mem->get($key);あなたの声明によると、memcacheはSQLステートメントを最適化するために使用されません。

データベースにアクセスした後に取得されたデータを一時的に保存するために使用されます。 次回データにアクセスしたときに保存されます。データベースにクエリする必要はありませんが、メモリから直接取得するため、データベース アクセスの負荷を軽減できます


Memcache はオブジェクト指向アクセス インターフェイス (メモリ キャッシュ手続き型プログラム) と同等です

コード内の同様のロジック
if( $mem->get('key')){ // 保存されているかどうかを確認します
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐∣ これを呼び出すのは非常に簡単なので、自分で試してみてください。

設定後の効果は明ら​​かではありません

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。