Smarty + memcache が最適化の組み合わせだと言われていますが、smarty を使ってみるとなぜ memcache が必要なのかわかりません〜
Smarty にはページキャッシュがあるので、例えば今ページ A があり、キャッシュ時間を指定するが 10 分の場合、論理演算を 10 分ごとに実行するだけで済みます。 memcache の用途は何ですか?
Smarty と memcache がどのように一緒に使用されるかについての小さな例を教えてください。
みなさん、ありがとうございました!
Memcache はメモリに保存され、smarty はメモリからデータを読み込む方が速いはずです。原則が異なります
Memcache はメモリに保存され、smarty はメモリからのデータの読み取りが高速になるはずです
これで、smarty がキャッシュできるようになりました。 memcache を使用する理由
理由は非常に簡単です: 操作メカニズムと適用範囲が異なるため、smarty は少数の若手 PHP プログラマーのみに使用されていますが、memcache は広く採用されており、メモリベースのデータベース システムはそこから派生しています
Smarty はキャッシュできます。 memcache を使用する理由
理由は非常に単純です。操作メカニズムと適用範囲が異なるため、smarty は少数の若手 PHP プログラマーのみに使用されているのに対し、memcache は広く採用されており、メモリベースのデータベース システムはそこから派生したものです
1 つはデータ用で、もう 1 つはアクセスしたページ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することであり、高度なリアルタイム更新を必要としない一部のページでは、スマート キャッシュが使用されます。効果の範囲 ニンジンを食べるとスイカも食べる必要があるのと同じで、ニンジンを食べるとビタミンCが増え、スイカを食べるとビタミンDが増えるのと同じです。まだ迷っている方も心配する必要はありません。それは後でわかります
A これは、アクセスされるページのデータであり、最も一般的に使用される方法は、高い実数を必要としない一部のページの場合です。 -タイムリフレッシュ、スマートキャッシュが使用されます。ニンジンを食べるとスイカを食べるとビタミンDが増えるようなものです。これについてまだ混乱している場合は、そうではありません。今は心配する必要はありません。後でわかります
7 階の回答からの引用:
1 つはデータ用で、もう 1 つはアクセスしたページ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することであり、一部のページでは高い処理を必要としません。これは Smarty のキャッシュであり、その効果の範囲は異なります。ニンジンを食べるとビタミン C が増加し、スイカを食べるとビタミン D が増加するのと同じです。今は心配する必要はありません。後でゆっくり考えてみましょう
たとえば、現在 5 分ごとに更新する必要があるページがあります...
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 はメモリ内のディスクよりも数桁高速になり、ブロックされる可能性が低くなります。
この理由はとても簡単です