https://dzone.com/articles/java-distributed-caching-in-redis Java 分散アプリケーションでキャッシュを使用する理由は何ですか? アプリケーションの速度とパフォーマンスを向上させるには、1 ミリ秒も無駄にできません。 Google の調査によると、ウェブサイトが 3 秒以内に読み込まれない場合、モバイル ユーザーの 53% がウェブサイトを離れるそうです。 キャッシュは、分散アプリケーションを高速化するための重要なテクノロジの 1 つです。情報が CPU の近くに保存されるほど、アクセスが速くなります。 CPU キャッシュからデータをロードする方が RAM からロードするよりもはるかに高速であり、RAM からロードする方がハードディスクやネットワーク経由でロードするよりもはるかに高速です。 頻繁にアクセスされるデータを保存するには、分散アプリケーションで複数のマシンにわたってキャッシュを維持する必要があります。分散キャッシュは、分散アプリケーションのレイテンシを削減し、同時実行性とスケーラビリティを向上させるための重要な戦略です。 Redis は、データベース、キャッシュ、またはメッセージ ブローカーとして使用できる、人気のオープン ソースのインメモリ データ ストアです。 Redis はディスクではなくメモリからデータを読み込むため、多くの従来のデータベース ソリューションよりも高速です。 ただし、Redis 分散キャッシュを正しく動作させることは、開発者にとって大きな課題です。たとえば、ローカル キャッシュの無効化、つまりキャッシュ エントリの置き換えや削除は、慎重に処理する必要があります。ストレージ コンピューターのローカル キャッシュ内の情報を更新または削除するたびに、分散キャッシュ システム内のすべてのコンピューターのメモリ内のキャッシュを更新する必要があります。 幸いなことに、Redisson のような Redis フレームワークがあり、アプリケーションに必要な分散キャッシュの構築に役立ちます。次のセクションでは、Redisson の分散キャッシュの 3 つの重要な実装である Maps、Spring Cache、JCache について説明します。 1. Redisson分散キャッシュ Redisson は、Java で Redis ラッパーとインターフェースを実装する Redis ベースのフレームワークです。 Redisson には、分散オブジェクト、分散サービス、分散ロックとシンクロナイザー、分散コレクションなど、多くの一般的な Java クラスが含まれています。以下で説明するように、これらのインターフェースの一部は分散キャッシュとローカル キャッシュの両方をサポートしています。 2. 地図 Map は Java で最も便利なコレクションの 1 つです。 Redisson は、ローカル キャッシュをサポートする RMap と呼ばれる Java マップ実装を提供します。 複数の読み取り操作またはネットワーク ラウンドトリップを実行することが予想される場合は、ローカル キャッシュをサポートする RMap を使用する必要があります。マップ データをローカルに保存すると、RMap はローカル キャッシュを有効にしていない場合よりも 45 倍高速になります。一般的な分散キャッシュは RMapCache を使用し、ローカル キャッシュは RLocalCachedMap を使用します。 Redis エンジン自体は、クライアント側でコードを実行する必要なく、キャッシュを実行できます。ただし、ローカル キャッシュは読み取り速度を大幅に向上させることができますが、開発者によるメンテナンスが必要であり、開発作業が必要になる場合があります。 Redisson は、ローカル キャッシュの実装を容易にする RLocalCachedMap オブジェクトを開発者に提供します。 次のコードは、RMapCache オブジェクトを初期化する方法を示しています。
上記のコードは、文字列「key1」を RMapCache に格納し、それを SomeObject() に関連付けます。次に、2 つのパラメータを指定します。TTL は 10 分に設定され、最大アイドル時間は 10 秒に設定されます。 必要がなくなったら、RMapCache オブジェクトを破棄する必要があります。
Redisson を閉じた後に破棄する必要はありません。 3. スプリングキャッシュ Spring は、キャッシュ サポートも提供するエンタープライズ レベルの Web アプリケーションを構築するための Java フレームワークです。 Redisson には Spring キャッシュ機能が含まれており、RedissonSpringCacheManager と RedissonSpringLocalCachedCacheManager という 2 つのオブジェクトが提供されます。 RedissonSpringLocalCachedCacheManager はローカル キャッシュをサポートします。 こちらは RedissonSpringLocalCachedCacheManager オブジェクトの構成例:
さらに、JSON または YAML ファイルを読み取って RedissonSpringCacheManager を構成することもできます。 RMapsのように、 各 RedissonSpringCacheManager インスタンスには、ttl (time to live) と maxIdleTime という 2 つの重要なパラメーターがあります。これらのパラメータが 0 に設定されている場合、または定義されていない場合、データはキャッシュ内に無期限に残ります。 4. Jキャッシュ JCache は、開発者がキャッシュからオブジェクトを一時的に保存、取得、更新、削除できるようにする Java キャッシュ API です。 Redisson は、Redis 用の JCache API の実装を提供します。以下は、デフォルト設定を使用して Redisson で JCache API を呼び出す例です。
さらに、JCache は、カスタム構成ファイル、Redisson Config オブジェクト、または Redisson RedissonClient オブジェクトを使用して構成できます。たとえば、次のコードではカスタム Redisson 構成を使用して JCache を呼び出します。
Redisson の JCache 実装は、JCache TCK のすべてのテストに合格しました。ご自身で確認することもできます。 |
<<: IDC: パブリッククラウドサービスへの世界支出は2023年までに2倍以上に増加
>>: 10 仮想化プラットフォームの運用と保守に関する知識と経験
中国における消費の転換とアップグレードの波の中で、贅沢品や汎贅沢品ウェブサイトは、共同購入後の狂った...
メーデーの祝日を記念して、ftlcloud は新規ユーザー向けにサンノゼ データ センターで 1 か...
ウェブマスターとして、ウェブサイトをホームページにしたくない人はいますか?毎日たくさんの注文を受けた...
共同購入は今年2度目の規模縮小となる可能性一連の再編を経て、1月末現在、共同購入サイトの数は3,79...
SEO業界では、新人でもベテランでも、何らかの問題に遭遇します。これはよくある現象ですが、率先してま...
編集者注/スマート端末の急速な普及により、アプリケーションのダウンロードが劇的に増加しました。モバイ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスファン経済の時代では、W...
Raksmart は、米国での無制限トラフィック VPS、香港での無制限トラフィック VPS、日本で...
海外メディアの報道によると、Mobile Expertsは最近、エッジコンピューティングに関するレポ...
企業ウェブサイトの SEO 最適化の観点から、ウェブサイトの価値は主にどこにあるのでしょうか? ウェ...
SimpleNode は 1 年以上にわたって商業的に運用されてきました。ネットユーザーによると、サ...
raksmartが新たに発売したrakクラウド(クラウドサーバー)ホストcatは、すでに中国本土の最...
クラウド コンピューティングの急速な成長により、デジタル情報を消費および保存する方法が急速に変化しま...
電子商取引サービス業界が発展の黄金期に入っている兆候は数多くあります。アリババ研究センターが発表した...
諺にあるように、困難な時代に英雄が現れる。百度のランダムKの時代には、小さなウェブサイトが台頭するチ...