ホームページ >バックエンド開発 >PHPチュートリアル >投稿後、clearCache 記事リストのロジックについて SMARTY にアドバイスしてください。

投稿後、clearCache 記事リストのロジックについて SMARTY にアドバイスしてください。

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

記事リストのサムルティコードは以下の通りです

$smarty -> setCacheDir(ROOT_PATH."/cache/forum");$smarty -> display("$module/list.html",$_SERVER["REQUEST_URI"]);

ROOT_PATH = 私のルートディレクトリ
$module = PHP の冒頭で現在のモジュールをカスタマイズし、テンプレート内のサブディレクトリを自分で探します

記事が多いので、多くの構造、そして異なるモジュールもたくさんあります...そこで、キャッシュとテンプレートの両方をサブディレクトリにしようと考えました
テンプレートのサブディレクトリはファイルを見つけるのに便利です
キャッシュのサブディレクトリ...同じディレクトリ内にファイルが多すぎるため、サブディレクトリも便利です さまざまなモジュールに従ってキャッシュをクリーンアップします

表示に次の文を追加しました: $_SERVER["REQUEST_URI"]

ページングなので、他の変数でも構いません

私のページには一時的に最大 3 つのパラメータリストが存在する可能性があります .php?fid=1&type=20&page=3

fid=column (存在する必要があります)
type=topic category (状況に応じて、一部のページには一部のページはそうではありません)
page=現在のページ (存在する必要があります)

パラメーターが異なるため、異なるファイルが生成される可能性があります

Smarty を使用する主な目的は、データベースへの負荷を軽減することです



質問 1.

post.php
というページで記事を公開しています
公開が完了すると基本的なことがいくつかあります $fid = 1 (列 ID) などのデータ、これを使用したい自然な列のキャッシュをクリアする列 ID

これがそれです: list.php?fid=1&type=20&page=3

すべての fid = 1 にする方法があります。関連するものはすべてクリアされますか?

つまり、 fid = 1 である限り、他のパラメータ type=100 または type=5 に関係なく、すべての page=xxx が更新されますか?
CACHE をクリアするにはこの文しかありません
clear_cache('index.tpl',cache_id);//清除指定id的缓存


指定されたディレクトリをクリアすることはできません 上で説明したように、テンプレートのサブディレクトリを使用するため



質問 3.

体験 1 つの質問

したい場合よりリアルタイムで、Web サイトにたくさんの人がいる場合、問題 1 と 2 を解決し、代わりにサムルティのキャッシュ時間を 10 秒に設定します

500 ~ 2000 人が長時間アクセスする Web サイトの場合はどうなるでしょうかユーザーが頻繁にメッセージを残したりコミュニケーションしたりする Web サイト キャッシュを 10 秒程度に設定すると、キャッシュしないよりもストレスがかかりますか?

私の場合、誰もがより多くのトラフィックを書き込みます...毎回記事に返信/投稿するときにキャッシュをクリアしますか? それとも直接キャッシュを放棄しますか?解決策)

変更され続ける場合は推奨されません キャッシュを使用すると、Ajax を使用して QQ スペースのようにロードすることもできます。これは単なる私の謙虚な意見です。

それは不思議なことですが、お金にもっと注意を払うので、節約する必要はありません。
ストレージを使用したい場合でも、イベントが実行されるたびに再生成する必要があります。この方法でのみ効果的な効果を達成できます。

記事リストに関しては、毎日1分ごとに新しい記事を追加または修正する場合。それでは節約効果は大きくありません。

1日であれば、新しい記事や修正はあまりないかもしれません。これは後で関数として実行できます。リストのストレージを一度クリアするために使用します。

ご存知のとおり、既存のパスを保存するだけでなく、キャッシュ アドレスを自分でクリアできるのはなぜですか?
Smarty はキャッシュイドに基づいて判断を行うため、状況に合わない場合があります。

不思議なことに、リアルタイム性を重視するので、キャッシュを使用する必要がありません。 キャッシュを使用したい場合でも、イベントが実行されるたびに、対応するキャッシュを再生成する必要があります。この方法でのみリアルタイム効果を実現できます。

記事リストについては、1日以内に1分ごとに新しい記事を追加または修正した場合。その場合、キャッシュはあまり役に立ちません。

1日以内であれば、新しい記事や修正はあまりないかもしれません。それはバックグラウンドでの機能である可能性があります。を呼び出すと、リストのキャッシュがクリアされます。

実際、キャッシュを保存するためのパスとディレクトリのルールは皆さんもご存知でしょう。なぜわざわざ Smarty に付属しているクラスを使用する必要があるのでしょうか。
smarty はキャッシュイドに基づいて判断しますが、これはあなたの状況には適していません。

そこで私は考えています

私のリストはフォーラムのようなもので、最新の返信順に並べ替えられています

誰かが毎分...あるいは10〜20秒ごとに返信するとしたら...そしてリストは30〜40ページになります

10〜20秒ごとにキャッシュをクリーンアップします

記事に返信した後に条件を満たした後にクリーンアップする

、またはキャッシュの有効時間を自動的に15秒に設定する


キャッシュファイルをクリーンアップし続けます。キャッシュを生成すると... キャッシュしないよりもホストに負担がかかりますか?

私を推薦して提案を求めてください

リストページのキャッシュは、関連記事が追加されたときに削除する必要があります
リストページのキャッシュは、再訪問時に自動的に生成することも、記事公開後に能動的に生成することもできます
後者を採用する場合、リストページを直接キャッシュすることもできます静的であるか、キャッシュを期限切れにすることはできません。キャッシュの有効期限が切れているかどうかを確認するオーバーヘッドを減らすため

関連記事が追加されたときにリストページのキャッシュを削除する必要があります
リストページのキャッシュは、再訪問時に自動的に生成することも、記事の後にアクティブに生成することもできますが公開されます
後者を使用する場合、リスト ページを直接静的にすることも、キャッシュの有効期限が切れることもありません。キャッシュの有効期限が切れているかどうかを確認するオーバーヘッドを減らすためです


ありがとうございます
ただし、毎分2〜3件程度の返信がある場合は

リストは最新の返信でソートされます

リストに30〜40ポイントがある場合は
です毎回並べ替える必要はありません 削除するとまた 30 ~ 40 ページが生成されますか?

あなたのリストはフォーラムの投稿のリストですか?これについて説明していませんでした あればキャッシュする必要はありません

記事リストであればキャッシュできます。返信はリストの順序に影響を与えないためです。影響を受けるのはせいぜい「最新ニュース」リストです

積極的にリストページを生成したり、キャッシュをクリアしたりする場合は、ナビゲーションバーの範囲に限定されます
ナビゲーションバーの範囲を超えるページにアクセスすると、キャッシュが有効期限はすでに切れています

2 ~ 3 分以内に新しい記事がオンラインに表示される場合は、Web サイトが非常にアクティブであることを意味します。したがって、キャッシュは非常に必要です


あなたのリストはフォーラムの投稿のリストですか?これについて説明していませんでした

あればキャッシュする必要はありません

記事リストであればキャッシュできます。返信はリストの順序に影響を与えないためです。影響を受けるのはせいぜい「最新ニュース」リストです

積極的にリストページを生成したり、キャッシュをクリアしたりする場合は、ナビゲーションバーの範囲に限定されます
ナビゲーションバーの範囲を超えるページにアクセスすると、キャッシュが有効期限はすでに切れています

2 ~ 3 分以内に新しい記事がオンラインに表示される場合は、Web サイトが非常にアクティブであることを意味します。したがってキャッシュは非常に必要です

実際、システムとフォーラムはほぼ同じです


他の機能は会員権とポイントに関連しているため、他の人のものは使用せず、簡単なものしか自分で作ることができません

私は PHP+SMARTY を使っています

フォーラムのリストであればキャッシュする必要はありません

返信がランキングに影響する限り... キャッシュすることはお勧めしません


ところで、DZ や PW など、皆さんが理解しているかどうかはわかりませんが、ホームページのみがキャッシュされ、リストの記事はどれもキャッシュされないというのは本当ですか

これはあなたの特定のアプリケーションに関連しています フォーラム注目を集めるために、新しい投稿と新しい返信を常に前面に配置します

したがって、キャッシュには意味がありません



これはあなたの特定のアプリケーションに関連しています

フォーラムは、注目を集めるために常に新しい投稿と新しい返信を前面に配置します

したがって、キャッシュは意味不明
ありがとう

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