目次
ディスカッションへの返信(解決策)
ホームページ バックエンド開発 PHPチュートリアル なぜsmartyを使用した後にmemcacheを使用する必要があるのか​​よくわかりません~~~~

なぜsmartyを使用した後にmemcacheを使用する必要があるのか​​よくわかりません~~~~

Jun 23, 2016 pm 02:26 PM

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

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

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


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

Memcache はメモリに保存され、smarty はメモリに保存される方がデータを読み込むのが速いという原則があります。違う

Memcache はメモリに保存され、smarty はメモリからのデータの読み取りが高速になるはずです。 この 2 つの原理を見てください。 。
あなたが言いたいのは、memcache はスマート静的キャッシュよりも高速ですよね?

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

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

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

2 つの最適化は通常、一緒に使用されませんか?


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

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


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

次に、このページが静的にキャッシュされ、5 分ごとに更新されるように設定します。

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


7 階の回答からの引用:

1 つはデータ用で、もう 1 つはアクセスしたページ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することです。リアルタイム更新は Smarty にキャッシュされており、その影響範囲は異なります。ちょうど、ニンジンを食べてからスイカを食べると、ニンジンを食べるとビタミン C が増加し、スイカを食べるとビタミン D が増加するのと同じです。これについてまだ混乱している場合は、今は気にせず、後で待ってください。遅いかどうかはわかります

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

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

8 階の回答からの引用:

7 階の回答からの引用:

1 つはデータ用で、もう 1 つはアクセスしたページ用です。たとえば、最も一般的に使用される方法は、クエリされたデータを memcache に保存することです。一部のページはリアルタイムです。更新要件が高くない場合は、スマート キャッシュが存在します。ニンジンを食べてスイカを食べると、ニンジンを食べるとビタミン 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 つはどのような状況で併用できるのでしょうか?ちょっとした例を知りたいだけです。
皆さんありがとうございました!

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


すべてのメソッドを判断することはできませんよね
それぞれのコントローラーのメソッドでということですか?
使えると思います~~~~ どの方法でも使用する場合のデメリットはありますか?

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

11ベストPHP URLショートナースクリプト(無料およびプレミアム) 11ベストPHP URLショートナースクリプト(無料およびプレミアム) Mar 03, 2025 am 10:49 AM

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Laravelでフラッシュセッションデータを使用します Laravelでフラッシュセッションデータを使用します Mar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、React LaravelのバックエンドでReactアプリを構築する:パート2、React Mar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelテストでの簡略化されたHTTP応答のモッキング Laravelテストでの簡略化されたHTTP応答のモッキング Mar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPのカール:REST APIでPHPカール拡張機能を使用する方法 PHPのカール:REST APIでPHPカール拡張機能を使用する方法 Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプト Codecanyonで12の最高のPHPチャットスクリプト Mar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP状況調査の発表 2025 PHP状況調査の発表 Mar 03, 2025 pm 04:20 PM

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

Laravelの通知 Laravelの通知 Mar 04, 2025 am 09:22 AM

この記事では、Laravel Webフレームワークの通知システムを検討します。 Laravelの通知システムを使用すると、さまざまなチャネルでユーザーに通知を送信できます。今日は、通知ovを送信する方法について説明します

See all articles