問題タブ [caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - キャッシュ内のオブジェクトの重複コピーを回避するにはどうすればよいですか?
memcacheを使用してWebアプリケーションのモデルレイヤーのキャッシュを設計しています。私の最大の問題の1つは、データの一貫性です。次のようなデータをキャッシュすることになりました:(key = query、value =クエリの結果のオブジェクトIDのリスト)リストの各ID:(key = object.id、value = object)
したがって、クエリが実行されるたびに、クエリがすでに存在する場合は、リストで通知されたオブジェクトをキャッシュから取得します。そうでない場合は、リストのすべてのオブジェクトがキャッシュに保存され、他の古い値が置き換えられます。
誰かがこの代替手段を使用しましたか、それは神ですか?他のアイデアはありますか?
caching - 要求/応答のバッファリングと遅延接続を明示的かつ構成可能なサポートを備えた HTTP プロキシはありますか?
モバイル クライアントを扱う場合、HTTP リクエストの送信中に数秒の遅延が発生することはよくあることです。プリフォーク Apache からページまたはサービスを提供している場合、アプリケーション サーバー ロジックが 5 ミリ秒で完了したとしても、子プロセスは 1 つのモバイル クライアントにサービスを提供するために数秒間拘束されます。以下をサポートする HTTP サーバー、バランサー、またはプロキシ サーバーを探しています。
プロキシにリクエストが届きます。プロキシは、ヘッダーと POST/PUT 本文を含む要求の RAM またはディスクへのバッファリングを開始します。プロキシはバックエンド サーバーへの接続を開きません。これはおそらく最も重要な部分です。
プロキシ サーバーは、次の場合に要求のバッファリングを停止します。
- サイズ制限 (4KB など) に達した、または
- リクエストはヘッダーとボディを含めて完全に受信されました
要求 (の一部) がメモリ内にある場合にのみ、バックエンドへの接続が開かれ、要求が中継されます。
バックエンドは応答を返します。ここでも、プロキシ サーバーはすぐにバッファリングを開始します (より寛大なサイズ、たとえば 64KB まで)。
プロキシには十分な大きさのバッファがあるため、バックエンド レスポンスは数ミリ秒でプロキシ サーバーに完全に格納され、バックエンド プロセス/スレッドはより多くのリクエストを自由に処理できます。バックエンド接続はすぐに閉じられます。
プロキシは、リソースを拘束するバックエンドへの接続を持たずに、可能な限り高速または低速でモバイル クライアントに応答を返します。
Squid で 4 ~ 6 を実行できると確信しており、nginx は 1 ~ 3 をサポートしているようです (そして、この点でかなりユニークに見えます)。私の質問は次のとおりです。これらのバッファリング機能と準備が整うまで接続を開かない機能に共感するプロキシサーバーはありますか? たぶん、このバッファリング動作を簡単にするApache config-fuが少しあるのでしょうか? Squid のような恐竜ではなく、無駄のない単一プロセス、非同期、イベントベースの実行モデルをサポートするものはありますか?
(サイダーラント:私はnginxを使用していますが、チャンクされたPOSTボディをサポートしていないため、モバイルクライアントにサービスを提供するのには役に立ちません。はい、安価な50ドルのハンドセットはチャンクされたPOSTが大好きです...ため息)
asp.net-mvc - リポジトリ/サービス パターンと MVC を使用する場合のデータ オブジェクトのキャッシュ
データ アクセスにリポジトリ/サービス パターンを使用している MVC ベースのサイトがあります。サービスは、大多数のアプリケーション (コンソール、winform、および Web) で使用するように作成されています。現在、コントローラーはサービスと直接通信します。これにより、適切なキャッシュを適用する機能が制限されました。
私のオプションは次のとおりです。
- キャッシュを行う IWhatEverService を実装する Web アプリのラッパーを作成します。
- 各アクションの ViewData をキャッシュすることで、各コントローラーにキャッシュを適用します。
- データ キャッシングについて心配する必要はなく、各アクションに OutputCaching を実装するだけです。
それぞれの長所と短所を見ることができます。リポジトリ/サービスを使用したキャッシュのベスト プラクティスは何ですか?
iis - IIS ASP キャッシュ
購入したソフトウェアの指示に従って、IIS で ASP キャッシュを構成しようとしています。これにより、実行速度が速くなるはずです。
ソフトウェアの説明はその記事を指しています。
私が抱えている問題は、そこに記載されている「ASPファイルキャッシュセクション」がIISダイアログに存在しないことです...
何か不足していますか?それを表示させる設定はありますか?W2003 Server Enterprise Edition で IIS 6.0 を実行しています。
更新 1: ローカル管理者としてログインしています (ボックスはドメインにありません)
asp.net - ASP.NET を実行している Web ファームの分散キャッシュに何を使用していますか?
この状況で他の人が何を使用しているのか、私は興味があります。memcached ポートや ScaleOutSoftware など、いくつかの選択肢があることを知っています。memcached ポートは積極的に取り組んでいないようです (間違っていたら訂正してください)。ScaleOutSoftware は私には高すぎます (それだけの価値があることは間違いありません)。これは、memcached や ScaleOutSoftware を使用している人々について聞きたくないということではありません。この時点で私が「知っている」ことを述べているだけです。
私の質問は基本的にこれです:分散キャッシュを積極的に使用している方は、何を使用していますか?
私はすぐに 2 つのサーバーに移動します...どちらも同じ場所に配置されます。データベース サーバーの負荷を軽減するために、かなり頻繁に (ただし慎重に) キャッシュを使用しています。
編集: Scaleout Software のソリューションをダウンロードしました。私はそれをコーディングしましたが、本当にうまくいくようです。私の財布がそのために現金を手放すかどうかを決めなければなりません。:) ScaleoutSoftware で良い経験も悪い経験もした人はいますか?
もう一度編集:これを尋ねてから少し時間が経ちましたか?それ以上の考えはありますか?最終的に ScaleOutSoftware からソリューションを購入して満足していますが、他の人が何をしているのか気になります。
nhibernate - Strict vs NonStrict NHibernate キャッシュ同時実行戦略
この質問は、NHibernate の第 2 レベル キャッシュの ReadWrite と NonStrictReadWrite キャッシュ同時実行戦略の違いに関するものです。
私が理解しているように、これら2つの戦略の違いは、分散複製キャッシュがある場合に関係があります.非厳密は、1つのキャッシュが別のキャッシュとまったく同じ値を持つことを保証しませんが、厳密な読み取り/書き込みは保証する必要があります-キャッシュプロバイダーがそうすると仮定します適切な分散ロック。
私が理解していない部分は、単一のキャッシュ、または分散パーティション化された(複製されていない) キャッシュがある場合に、厳密な対非厳密な区別がどのように関連するかです。それは関連することができますか?レプリケートされていないシナリオでは、タイムスタンプ キャッシュによって古い結果が提供されないように思われます。関連性がある場合は、例を見てみたいと思います。
php - ページ化された結果をキャッシュし、更新時にパージする-解決方法は?
フォーラムを作成し、データベースの作業を節約するためにapcおよびmemcacheキャッシングソリューションを実装しています。
「Categories::getAll」などのキーを使用してキャッシュレイヤーの実装を開始しました。ユーザー固有のデータがある場合は、ユーザーIDなどのキーを追加して取得し"User::getFavoriteThreads|1471"
ます。ユーザーが新しいお気に入りのスレッドを追加したら、キャッシュキーを削除すると、エントリが再作成されます。
ただし、ここに問題があります。
フォーラムにスレッドをキャッシュしたかったのです。非常に単純な「Forum::getThreads |$iForumId」。しかし...ページネーションを使用すると、これをいくつかのキャッシュエントリに分割する必要があります。たとえば
誰かがフォーラムに新しいスレッドを投稿するまでは、これで問題ありません。"Forum::getThreads|$iForumId"
制限とオフセットに関係なく、下のすべてのキーを削除する必要があります。
この問題を解決する良い方法は何でしょうか?一致しないものが見つかるまで、考えられるすべての制限とオフセットをループすることは本当にしたくありません。
ありがとう。
ruby-on-rails - インターバルレールキャッシング
単一のページをキャッシュする必要があります。これには ActionController の caches_page を使用しました。しかし今、私はそれを10分ごとに期限切れにして再生成したいと思っています。私のオプションは何ですか?
後で: これには cron などの外部ツールを使用したくありません。重要なポイントは、キャッシュの間隔ベースの有効期限です。
caching - ウェブ上でのキャッシングの戦略?
いつ、どのようにキャッシュするかを決定する際に、どのような懸念事項、プロセス、質問を考慮しますか。それは常に勝てない状況ですか?
これは、最適化されたコード ベースに行き詰まっていることを前提としています。