どのようにしてユーザーのキャッシュを更新できますか?
もう一度追加してください。私は複数のWebサーバー間でそれを行うことができますどのようにキー
cache.set(user.getId(), user);
としてユーザーIDを使用していると仮定すると?
これは全く異なる質問です。デフォルトではEhCacheがキャッシュプロバイダとして使用され、プレイキャッシュAPIはデフォルトで分散キャッシュを作成しません。
私はEhCacheにあまり知られていませんが、別の製品の分散キャッシュ(つまり複数のサーバー間のキャッシュ)をサポートしていると思いますし、レプリケーションもサポートしています。だから最初にそれを調べて、それがあなたに合っているかどうかを調べることができます。
Cache APIの実装を作成し、EhCache/Terracota/Memcached/HazelCastを使用して必要なセットアップを行うこともできます。
もう1つのオプションは、Akka Clustering/PubSub拡張機能を使用し、キャッシュの無効化(つまり、サーバー1のキャッシュを無効にする - すべてのサーバーがそのキャッシュを無効にするためのブロードキャストメッセージを無効にすること)です。あなたがAkkaとPubSubの拡張に慣れていない限り、これはおそらく実装が難しいでしょう。
最後の手段として、余裕があれば、短い有効期限(例:1分)でキャッシュを設定できます。これは、アプリケーションで期限切れのオブジェクトが期限切れになっていると見なすことができる場合は、最も簡単な方法です。
どのようにユーザーをキャッシュしますか?このキャッシュのキーは何ですか?.. – MipH
私は、フードの下でEHCacheを使用するPlayのcache.set()とcache.get()を介してキャッシュしています。ユーザーがログインすると、ユーザーのID(プライマリキー)がセッションに格納され、そのユーザーのIDを使用してキャッシュキーを介してユーザーオブジェクトをキャッシュから取得します。 – Mule