問題タブ [django-cache]

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.

0 投票する
2 に答える
7182 参照

django - Django - ビューごとのキャッシュを無効にする方法は?

ビューごとのキャッシュを使用したい。仕組みはわかったけど、どこが悪いの?そのキャッシュを無効にするにはどうすればよいですか? データベース レコードが変更されるたびに、これを行う必要があります。それを行う方法についての情報はありません:/

0 投票する
2 に答える
3267 参照

django - Django:変数を永続化する

基本的に、Djangoで変数を永続的にしたいのですが、その方法がわかりません。

もっと正確に言うと、ユーザーがサイトにログインするときに(たとえば、ChoiceFieldを介して)特定のプロジェクトを選択するようにします。次に、彼が別のプロジェクトを選択しない限り、サイトは彼が選択したプロジェクトを「認識」しているため、彼はこのプロジェクトに関連するいくつかのアクションを実行できます。

そんなことがあるものか ?セッション変数は進むべき道ですか?それともキャッシュシステム?いくつかのヒントをいただければ幸いです:)

はっきりしない場合はお知らせください

0 投票する
1 に答える
251 参照

django - Django キャッシュに大きなテーブルを効率的に格納する

私は Django を jqGrid で使用し、AJAX を介してページを読み込みます。場合によっては、クエリが非常に複雑になり、ページの読み込みが非常に遅くなります。これは、far ページが非常に遅くなるためです (予想されることですが、結果はしばしば 100k オブジェクトを超えます)。結果のキャッシュは問題を解決し、最初のページの読み込みに時間がかかりますが、その後のページの読み込みを大幅に加速すると考えました。

代わりに、最初のページの読み込みが非常に遅くなり、後続のページでさえ多くの時間がかかりました (標準の PC で 11 秒)。私は locmem キャッシュ バックエンドを使用しています。何か案は?比較のために、グローバル ディクショナリに結果を保存しようとしましたが、それははるかに優れていました (後続のページは 1 秒しかかかりません) が、安全な方法ではないと聞いています。

何か案は?

0 投票する
1 に答える
1130 参照

django - ファイルシステムとDBのどちらのDjangoキャッシングシステムが高速ですか?

MemcachedのDB/ファイルシステムのように、これら2つの間に必ずしも明確な切り口があるとは限りませんが、ファイルシステムがDBキャッシングよりも高速になる条件は何か疑問に思っています。そして、逆に、どのような条件下でDBキャッシングはファイルシステムよりも高速でしょうか?

0 投票する
1 に答える
1921 参照

django - Django 複数のキャッシュ バックエンド

1 つの django プロジェクトで複数のキャッシング エンジンを使用したいと考えています。例では、モデル画像のサムネイルを取得/設定するために多くのSQLクエリを生成するsorl.thumbnailを使用しています。このクエリをキャッシュするために、memcached バックエンドを使用します。しかし、他のキャッシュは機能しなくなりました。つまり、 を使用したテンプレート キャッシングと{% cache ... %}、API cache.get()、cache.set() を介したキャッシングを意味します。こんなものになりたい

}

テンプレートで「ファイルベース」のキャッシュを使用するにはどうすればよいですか? {% cache %} は memcached バックエンドを使用し、特にツリー (django-mptt) を使用して多くのクエリを生成するためです。

0 投票する
1 に答える
1153 参照

django - 非同期データ取得とキャッシュ処理

特定のタスクをバックグラウンドで定期的に (たとえば 1 時間または 2 時間ごとに) 実行する必要がある動的サイトの展開を計画しています。出力する必要があるデータは、これらのクエリの結果に厳密に依存しています。

問題は、これらのタスクには一定の時間がかかることです (例: 8 ~ 10 分)。したがって、ユーザーがページを要求すると、特定のビューが呼び出され、そのタスクがまだ処理中である場合、すべてがうまくいきません。

では、ここで質問です。その問題を処理するには、何を実装する必要がありますか? 私は検索してセロリについて見つけましたが、上記の問題を修正するためにどのように使用できるか理解できず、タスクがまだ終了していないときに介入するキャッシュシステムを実装する可能性があります.

0 投票する
0 に答える
44 参照

django - 特定の条件を満たすキャッシュから多くのオブジェクトを削除する

他のモデル Y とユーザー U ごとにモデル X を構築しました。ここで、Y にバインドされたすべてのモデル X をキャッシュから削除したいと考えています (すべてのユーザーに対して)。どうすればこれをうまく行うことができますか?

0 投票する
1 に答える
5762 参照

python - django クエリセット + memcached: ベスト プラクティス

django の低レベルの cache.set() 中に何が起こるかを理解しようとしています 特に、クエリセットのどの部分が memcached に格納されるかについての詳細。

まず、django ドキュメントを正しく解釈していますか?

  • クエリセット (python オブジェクト) は独自のキャッシュを持っている/維持しています
  • データベースへのアクセスは遅延です。queryset.count が 1000 であっても、1 レコードに対して object.get を実行すると、その 1 レコードに対して dbase は 1 回だけアクセスされます。
  • apache prefork MPM を介して django ビューにアクセスするとき、特定のデーモン インスタンス X が「tournres_qset = TournamentResult.objects.all()」のようなものを含む特定のビューを呼び出すたびに、これは毎回、新しいtournres_qset オブジェクトが作成されています。つまり、以前の (tcp/ip) アクセスから tournres_qset python オブジェクトによって内部的にキャッシュされた可能性があるものはすべて、新しいリクエストの tournres_qset によってまったく使用されません。

ビュー内の memcached への保存に関する質問です。ビューの上部に次のようなものを追加するとします。

cache.set() 中に何が保存されますか?

  • クエリセット (python オブジェクト) 全体がシリアル化されて保存されますか?

  • クエリセットはまだレコードを取得するために使用されていないため、特定のレコードのコンテンツが実際に memcache に保存されていないため、これは単なる時間の無駄ですか? (今後のリクエストでは、memcache から queryset オブジェクトが取得されます。memcache は、空のローカル クエリセット キャッシュで常に新しく開始されます。dbase へのアクセスは常に行われます。)

  • 上記が当てはまる場合、ビュー全体でいくつかのレコードにアクセスするためにクエリセットが使用された後、ビューの最後にクエリセットを常に再保存する必要があります。これにより、クエリセットのローカルキャッシュが更新されます。常に memcached に再保存されますか? ただし、これにより、クエリセット オブジェクトが再度シリアル化されることになります。物事をスピードアップするのはこれで終わりです。

  • または、cache.set() は queryset オブジェクトを強制的に反復させ、dbase からすべてのレコードにアクセスさせます。これは memcache にも保存されますか? ビューがクエリ セットのサブセットにしかアクセスしない場合でも、すべてが保存されますか?


あらゆる方向に落とし穴があり、多くのことを誤解していると思います。

これが理にかなっていることを願っており、いくつかの「標準」ガイドラインへの説明またはポインタを高く評価しています。ありがとう。

0 投票する
1 に答える
705 参照

django - Django 低レベルキャッシュ API が機能しない

低レベルのキャッシュ API を使用して dict をキャッシュしようとしてrequest.POSTいますが、機能していないようです。キャッシュされた辞書の代わりにNone値を取得します。

これが私が試したことです:

設定:

コードの実行時に例外はありませんでした。

設定や unix に何か問題があるのmemcached.sockでしょうか?

0 投票する
1 に答える
1560 参照

django - Djangoでテンプレートフラグメントキャッシュを明示的にリセットするにはどうすればよいですか?

Django アプリケーションに Memcache を使用しています。

Django では、開発者はテンプレート フラグメント キャッシュを使用して、テンプレートのセクションのみをキャッシュできます。https://docs.djangoproject.com/en/dev/topics/cache/#template-fragment-caching

views.py でテンプレート フラグメント キャッシュ セクションの値を明示的に変更する方法があるかどうか疑問に思っていました。たとえば、テンプレート フラグメント キャッシュを除いて、cache.set("sidebar", "new value") に似たメソッドを使用できますか?

ご協力ありがとうございました。