ホームページ > バックエンド開発 > PHPチュートリアル > Smarty を使用した後に memcache を使用する必要がある理由がよくわかりません。

Smarty を使用した後に memcache を使用する必要がある理由がよくわかりません。

WBOY
リリース: 2016-06-23 13:37:22
オリジナル
827 人が閲覧しました

Smarty + memcache が最適化の組み合わせだと言われていますが、smarty を使ってみるとなぜ memcache が必要なのかわかりません〜
Smarty にはページキャッシュがあるので、例えば今ページ A があり、キャッシュ時間を指定するが 10 分の場合、論理演算を 10 分ごとに実行するだけで済みます。 memcache の用途は何ですか?

Smarty と memcache がどのように一緒に使用されるかについての小さな例を教えてください。

みなさん、ありがとうございました!


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

Memcache はメモリに保存され、smarty はメモリからデータを読み込む方が速いはずです。原則が異なります

Memcache はメモリに保存され、smarty はメモリからのデータの読み取りが高速になるはずです



違います。これ。 。
あなたが言いたいのは、memcache はスマート静的キャッシュよりも高速ですよね?

これで、smarty がキャッシュできるようになりました。 memcache を使用する理由

理由は非常に簡単です: 操作メカニズムと適用範囲が異なるため、smarty は少数の若手 PHP プログラマーのみに使用されていますが、memcache は広く採用されており、メモリベースのデータベース システムはそこから派生しています

Smarty はキャッシュできます。 memcache を使用する理由


2 つの最適化は通常、一緒に使用されないのでしょうか?

理由は非常に単純です。操作メカニズムと適用範囲が異なるため、smarty は少数の若手 PHP プログラマーのみに使用されているのに対し、memcache は広く採用されており、メモリベースのデータベース システムはそこから派生したものです


え?静的ページのキャッシュは現在非常に人気があるのではないでしょうか?

1 つはデータ用で、もう 1 つはアクセスしたページ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することであり、高度なリアルタイム更新を必要としない一部のページでは、スマート キャッシュが使用されます。効果の範囲 ニンジンを食べるとスイカも食べる必要があるのと同じで、ニンジンを食べるとビタミンCが増え、スイカを食べるとビタミンDが増えるのと同じです。まだ迷っている方も心配する必要はありません。それは後でわかります

A これは、アクセスされるページのデータであり、最も一般的に使用される方法は、高い実数を必要としない一部のページの場合です。 -タイムリフレッシュ、スマートキャッシュが使用されます。ニンジンを食べるとスイカを食べるとビタミンDが増えるようなものです。これについてまだ混乱している場合は、そうではありません。今は心配する必要はありません。後でわかります


そうですね、今は 5 分ごとに更新が必要なページがあります。データベースから取得された結果セットは 3 つあります。
次に、このページが静的にキャッシュされ、5 分ごとに更新されるように設定します。

この場合、memcacheを使っても使わなくても同じではないでしょうか?

7 階の回答からの引用:

1 つはデータ用で、もう 1 つはアクセスしたページ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することであり、一部のページでは高い処理を必要としません。これは Smarty のキャッシュであり、その効果の範囲は異なります。ニンジンを食べるとビタミン C が増加し、スイカを食べるとビタミン D が増加するのと同じです。今は心配する必要はありません。後でゆっくり考えてみましょう

たとえば、現在 5 分ごとに更新する必要があるページがあります...


ページがキャッシュされていても、データベースは変更されていないフロント ページにすぎないため、バックグラウンドで選択する必要があるため、たとえば memcache を使用する場合は異なります。 5 分間の場合、この 5 分間はデータベースのクエリが実行されないため、データベース リソースが保存されます。実際には、Smarty Caching はテンプレート変数の解析機能を保存するだけです。共通点は、両方ともキャッシュと呼ばれることです。他はまったく比較できません

8 階の回答からの引用:

7 階の回答からの引用:

1 つはデータ用で、もう 1 つはデータ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することですが、高度なリアルタイム更新を必要としない一部のページの場合は、smarty Cached の場合と同様に、影響範囲が異なります。ニンジンを食べるだけでなく、スイカも食べます。ニンジンを食べるとビタミンCが増加し、スイカを食べるとビタミンDが増加します。これについてまだ混乱している場合は、今は心配せず、後で待ってください。今ページがあります...

え? ? ?
現在のページがキャッシュされているかどうかを判断する関数がありません: is_cached()
それを使用して、すでにキャッシュされていて有効期限が切れていない場合は、データベースをチェックする必要がなく、静的ファイルを確認できます。直接読んでください。

2 つの異なること...kyzy が言ったように。これらはすべてキャッシュを提供すると言われていますが、キャッシュの具体的なオブジェクトと実装方法は異なります。さまざまなSMセッションの後、私たちはお互いにもっと寛容になることができましたが、それは少しお世辞ではありませんでした。

簡単に言えば、smarty は最終結果をキャッシュし、memcache は中間部分をキャッシュします。もちろん、これはより一般的ですが、これらが同じ問題を解決する共通点ではないことをどれだけ知っていますか。

smarty のキャッシュはファイルに基づいており、filecache と呼ぶことができます
ファイルへのアクセスはメモリへのアクセスよりも明らかに遅いです
だからこそ、smarty + memcache と言われています
つまり、smarty を変更してキャッシュを memcache に入れることができます

として何をどのように使用するかはすべて計画の問題です。実装技術とは関係ありません

え? ? ?
現在のページがキャッシュされているかどうかを判断する関数がありません: is_cached()
それを使用して、すでにキャッシュされていて有効期限が切れていない場合は、データベースをチェックする必要がなく、静的ファイルを確認できます。直接読んでください。



すべての方法を判断することはできません

さて、あなたが言及した 2 つの違いについては理解しました。皆さん、ありがとう!
しかし、今私にとって最も混乱しているのは、どのような状況でこの 2 つを併用できるのかがわからないことです。たとえば、先ほど挙げた例:

5 分ごとに更新が必要なページがあり、データベースから取得された項目は 3 つあります。
このページの静的キャッシュを設定するために Smarty を使用しており、キャッシュ期間は 5 分です。
次に、smarty の is_cached() メソッドを使用して、キャッシュが存在し、有効期限が切れていないかどうかを判断します。条件が true の場合は静的ファイルを直接読み取ることができ、そうでない場合は値を再取得します。

このような状況では、これら 3 つの結果セットを保存するために memcache を使用しても、効果はありませんか?
それでは、この 2 つはどのような状況で併用できるのでしょうか?ちょっとした例を知りたいだけです。
皆さんありがとうございました!

10th Floor の返信からの引用:
え? ? ?
現在のページがキャッシュされているかどうかを判断する機能がありません: is_cached()
それを使用して判断します。すでにキャッシュされていて有効期限が切れていない場合は、データベースをチェックする必要はなく、静的ファイルを確認できます。直接読んでください。


すべてのメソッドを判断することはできません


コントローラーのメソッドごとにという意味ですか?
使えると思います~~~~どの方法を使ってもデメリットはありますか?

実際、これはキャッシュの保存場所の違いであり、is_cached() を使用してキャッシュが読み取れるかどうかを判断するとき、問題はキャッシュがディスク上にあることです。アクセス数が多い場合、大量のディスク読み取りがブロックされると、Memcache はメモリ内のディスクよりも数桁高速になり、ブロックされる可能性が低くなります。

この理由はとても簡単です

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート