ホームページ  >  記事  >  バックエンド開発  >  [キャッシュ設計] 最も基本的なマルチレベル キャッシュが適していますか?また、どのように設定する必要がありますか?

[キャッシュ設計] 最も基本的なマルチレベル キャッシュが適していますか?また、どのように設定する必要がありますか?

WBOY
WBOYオリジナル
2016-12-01 00:25:371578ブラウズ

最近、私たちはシステムにレベル 1 のキャッシュ メカニズムを構築したいと考えています。しかし、いつも何かが足りないような気がします。

環境:
負荷分散、マスター/スレーブ分離、Redis スタンドアロン (将来的には複数のマシンになる可能性があります)

さて、最初のアイデア:

リーリー

ユーザーが Web アプリケーションにアクセスした後、ブラウザのキャッシュを設定し、次にローカル ファイル キャッシュとメモリ キャッシュを設定します。
他のユーザーが訪問した後の手順は次のようになると思います:

  1. ブラウザのキャッシュがあるかどうかを確認してください

  2. ローカルマシンにファイルキャッシュがあるかどうかを取得します

  3. メモリキャッシュ

  4. DB

私の質問は:

しかし、特定のステップで何かが欠けているように感じたり、(複数レベルの)キャッシュの有効期限を選択するのが難しいと感じたりします。

また、ローカル ファイル キャッシュの{有効期限の確認、ファイルの読み取り (削除、生成) } は、メモリ キャッシュ (Redis) に直接ジャンプする単一の接続と比較して価値がありますか?

そこで、基本的なキャッシュ メカニズムが適切かどうか、または改善できる欠点があるかどうかを確認したいと思います。ありがとうございます。

返信内容:

最近、私たちはシステムにレベル 1 のキャッシュ メカニズムを構築したいと考えています。しかし、いつも何かが足りないような気がします。

環境:
負荷分散、マスター/スレーブ分離、Redis スタンドアロン (将来的には複数のマシンになる可能性があります)

さて、最初のアイデア:

リーリー

ユーザーが Web アプリケーションにアクセスした後、ブラウザーのキャッシュを設定し、次にローカル ファイル キャッシュとメモリ キャッシュを設定します。
他のユーザーがアクセスした後、次の手順になると思います:

  1. ブラウザのキャッシュがあるかどうかを確認してください

  2. ローカルマシンにファイルキャッシュがあるかどうかを取得します

  3. メモリキャッシュ

  4. DB

私の質問は:

しかし、特定のステップで何かが欠けているように感じたり、(複数レベルの)キャッシュの有効期限を選択するのが難しいと感じたりします。

また、ローカル ファイル キャッシュの{有効期限の確認、ファイルの読み取り (削除、生成) } は、メモリ キャッシュ (Redis) に直接ジャンプする単一の接続と比較して価値がありますか?

そこで、基本的なキャッシュ メカニズムが適切かどうか、または改善できる欠点があるかどうかを確認したいと思います。ありがとうございます。

  1. マルチレベル キャッシュはシステムへの負荷を軽減し、RT を大幅に削減します。ただし、考慮する必要がある 1 つの側面は、記事の中で著者によって言及されています。マルチレベルキャッシュを使用しても問題は解決できません。マルチレベルキャッシュを無効にする方法としては、ローカルタイマーを使用して一定間隔でキャッシュを更新してみることができます

  2. 実際には、ファイル キャッシュをローカル メモリ キャッシュに置き換えることもできますが、ローカル ディスクの I/O 量が多い場合は対応できないと思います。どちらがより効率的で、ネットワークのオーバーヘッドが高いかについては、実際の状況に基づいて、圧力テストを受ける必要があります。

  3. マルチレベル キャッシュは、キャッシュの浸透とプログラムの堅牢性を重視します。集中キャッシュに問題がある場合、アプリケーションは実行を継続できるため、一部のホット データはメモリ キャッシュに保存されます。集中キャッシュ。これにより、集中キャッシュへの負担が軽減されます。したがって、この点では、ファイル キャッシュは Redis の集中キャッシュよりも優れています
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。