問題タブ [google-guava-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.
google-guava-cache - Guava キャッシュの有効期限をリセットする
Guava Cache Loader を使用しており、設定ファイルから有効期限が切れるまでの時間を取得しています。
特定のキャッシュの有効期限の値をプログラムでリセットする方法があるかどうか疑問に思っています。私の場合、これは、構成された値への変更を取得するリスナーのアクションで望ましいです。
java - Guava Cache size メソッドがキャッシュ内の実際のエントリ数を返さない
アプリケーションでグアバキャッシュを使用してパフォーマンスを向上させています。LoadingCacheのputAll API を使用して、キャッシュに 850 エントリを挿入しました。設定した最大キャッシュ サイズは 20K エントリです。テストクラスTestCacheSizeを使用してキャッシュサイズをテストしています:
キャッシュサイズのjavadocから:
size は、キャッシュ内のエントリのおおよその数を返します。
850 から 9467 がどのように近似値になるかについて、誰か洞察を与えることができますか?
java - Guava CacheBuilder を正しく使用する
Guava CacheBuilder を正しく使用する方法を教えてください。
データに到達できない場合、getFromNetwork() は例外を発生させるか、null を返す必要がありますか? 実行例外を発生させて、guavaCache.get() を使用する必要があります。ドキュメントが未チェックの例外で何を意味するのかわかりませんか?
本来の使用方法で CacheBuilder を使用する必要がありますか? guavaCache.put() を使用していませんか? これは自動的に行われます。右?
java - 大きすぎるオブジェクトを Guava キャッシュに入れることを制限する
特定のサイズより大きいオブジェクトの配置を制限する方法はありますか。
caching - 特定の時間に強制的に更新する Guava Cache
このキャッシュを毎日午前 3 時に更新しようとしています。問題は、ユーザーがキャッシュがウォームアップするまで長時間待たなければならないことです。そのため、一晩でリフレッシュして、翌朝すぐに UI にアクセスできるようにしておくことをお勧めします。
キャッシュ内のキーの固定セットを提供して、午前 3 時に更新できるようにしたいと考えています。
Google のドキュメントを読みましたが、既にキャッシュに読み込まれているデータのみが更新されるようです。
TL;DR - 1 日の特定の時間に、固定された一連のキーを使用してキャッシュをウォームアップしようとしています。
java - グアバキャッシュが使用できる最大の望ましいサイズは?
グアバキャッシュが使用できる最大の望ましいサイズは?私のシステムには 8 GB の RAM があるので、システムや他のアプリケーションのパフォーマンスを低下させることなく、どれくらいの MB を使用できますか? RAMストレージが利用できない場合、Guavaキャッシュはハードディスクストレージも使用しますか?
caching - スプリングブートで同時に複数のタイプのキャッシュ (redis & guava) を使用できますか?
スプリング ブート アプリケーションで、異なるタイプのオブジェクトに対して Cache を 2 つ実装しようとしています。メソッドに基づいて特定のオブジェクトをredisキャッシュに保存し、他のオブジェクトをグアバキャッシュに保存したい。CachingConfigurerSupport を拡張する 2 つの呼び出しを実装するたびに、このクラスには 1 つのインスタンスしか許可されないというエラーが表示されます。誰かがこれを行う方法を提案できますか?
spring - Spring Data リポジトリのキャッシュ / CacheEvict が機能しない
を使用してSpring Boot, Spring Data, with QueryDSL
います。私のクエリのほとんどはQueryDSL
基づいています。クエリを格納する単純なキャッシュを実装したいのですがUser
、単一のエンティティが削除されるとupdated/saved
、全体Cache
がクリアされます。
だからここに私のリポジトリインターフェースがあります:
ご覧のとおり、すべての「Find」メソッドをキャッシュし、Save メソッドを使用してすべてのエントリを削除しました。通常、使用されるものは次のとおりです。
はCaching
リポジトリのみに設定され、サービス/コントローラーなどには何も設定されません。
これが私の設定です:
また、エンティティにはいくつかのサブクラスがあることを追加する必要がありUser
ますが、すべてをクエリしていますUserRepository
問題は、検索リクエストが正常にキャッシュされても、保存を実行してもキャッシュが削除されないことです。
私が間違っていることはありますか?
java - Optional.absent() の Google Guava キャッシュ自動削除値
値が Optional.absent() のレコードを自動的に削除することは可能ですか? 一部のアプリケーションでは、Optional.absent() が一部のキーの値ではない場合があります。たとえば、アプリケーションに http 呼び出しが含まれており、キーが何らかの文字列であり、値が http 呼び出しから返された応答である場合、ネットワークの問題または認証の失敗により、http 呼び出しは無効な値 (null など) を返す可能性があります。 invalid は、キャッシュ内のキーとともに Optional.absent() として保存できます。後で、ネットワークと認証の問題が修正された場合でも、key->invalidValue はキャッシュに残ります。この問題を解決するには何が最善ですか?
java - 有効期限イベントを制御できるサードパーティの Java キャッシュはありますか?
私のユースケースは、サービスの上にキャッシュを実装する必要があり、(作成時から) 一定時間後にエントリを期限切れにする必要があることです。
また、エントリの有効期限が切れている場合は、サービス ルックアップを実行して最新のエントリを取得する必要があります。レッツコールはサービスリフレッシュです。
ただし、サービスの更新が失敗した場合、キャッシュ内の古いデータを使用できるはずです。
しかし、キャッシュは既に期限切れになっているため、そのエントリはありません。
そのため、キャッシュの有効期限を制御することを考えています。キャッシュ エントリは、サービスが最新のデータを取得できる場合にのみ有効期限が切れます。それ以外の場合は、そのエントリを削除しないでください。
私はGoogle Guavaキャッシュを調べていましたが、イベントを通知するremovalListenerのみを提供しますが、これで有効期限イベントを制御することはできません.
私の目的を果たすことができるサードパーティのキャッシュ実装はありますか?