RedisのJavaフレームワーク分散キャッシュ

なぜJavaアプリケーションで分散キャッシュを使用できますか?

プログラムのパフォーマンスと速度のアプリケーションを改善するには、ミリ秒ごとにカウントされます。3秒以下のためのWebサイトが正常にロードされなかった場合の研究グーグルによると、携帯電話ユーザーの53%が残りますが存在します。

キャッシュは、分散アプリケーションが重要な技術の一つを加速できるようにすることです。情報は、CPUに近い、より高速なアクセスを保存します。CPUキャッシュからのデータのロードは、RAM、はるかに高速ハードディスクやネットワークからの負荷の比率からロードするよりもはるかに高速です。

頻繁にアクセスされるデータを格納するために、分散アプリケーションは、複数のマシン上のキャッシュを維持する必要があります。分散キャッシュは重要な戦略の並行性とスケーラビリティを向上させるための待ち時間分散アプリケーションを低減します。

Redisのは、人気のあるオープンソースデータ格納メモリであるデータベース、キャッシュまたはメッセージブローカーとして使用することができます。データがメモリではなくディスクからロードされているので、多くの伝統的なデータベースソリューションよりもRedisのは、より早く市場にします。

Redisのは大きな課題であるように、しかし、開発者が適切に分散キャッシュを進めています。例えば、ケアは、ローカルにキャッシュエントリを置換または削除キャッシュの無効化を取らなければなりません。あなたがローカルキャッシュ内のコンピュータに保存された情報を更新または削除するたびに、キャッシュは分散メモリキャッシュシステム内のすべてのコンピュータを更新する必要があります。

良いニュースは、RedisのRedissonと同様のフレームワークの数があるということですキャッシュの分散に必要なアプリケーションを構築することができます。次のセクションでは、分散キャッシュに三つの重要な実現Redissonについて説明します。地図、春のキャッシュとJCacheの。

1. Redisson分散キャッシュ

Redissonは、Java実装Redisのラッパー(warpper)とインターフェースで、Redisのフレームに基づいています。Redissonは、分散オブジェクト、分散サービス、分散ロックとの同期だけでなく、分散型のコレクションなど、多くの一般的なJavaクラスが含まれています。すぐ下に記載されるように、いくつかのインタフェースは、分散キャッシュとローカルキャッシュをサポートします。

2.地図

地図は、Javaの最も有用なコレクションの一つです。Redissonは、Javaの地図RMAPを実装し、ローカルキャッシュをサポートして名付けられています。

あなたが複数の読み取り操作やネットワークループバック(往復)を実行したい場合は、RMAPサポートローカルキャッシュを使用する必要があります。地図データは、RMAP 45倍の速さよりもローカルで保存されているローカルキャッシュを非有効にしてください。ユニバーサルは、キャッシュRMapCache、RLocalCachedMapを使用してローカルキャッシュを使用を配布しました。

Redisのエンジン自体は、キャッシュを行うことが可能で、クライアントがコードを実行する必要はありません。しかし、ローカルキャッシュが大幅に読み出し速度を向上させますが、開発者によって維持される必要があり、そしていくつかの開発作業が必要になる場合がありますすることができます。Redissonは、それが簡単にローカルキャッシュを実装するために作成する開発者のためのRLocalCachedMapターゲットを提供します。

次のコードは、RMapCacheオブジェクトを初期化する方法を示しています。

RMapCache<String, SomeObject> map = redisson.getMapCache("anyMap"); 
map.put("key1", new SomeObject(), 10, TimeUnit.MINUTES, 10, TimeUnit.SECONDS); 
复制代码

上記符号列「KEY1」RMapCacheを入れ、そして()SomeObjectの関連付けられました。これは、2つのパラメータは、TTLが10分10秒の最大アイドル時間に設定されている指定します。

不要になった場合、それはRMapCacheオブジェクトを破壊する必要があります。

map.destroy(); 
复制代码

クローズRedisson後の動作を破壊しません。

3.春キャッシュ

春は、エンタープライズクラスのWebアプリケーションを構築するためのJavaフレームワークですが、また、キャッシングのサポートを提供します。

RedissonSpringCacheManagerとRedissonSpringLocalCachedCacheManager:Redissonは春のキャッシング機能、2つのオブジェクトを含んでいます。RedissonSpringLocalCachedCacheManagerは、ローカルキャッシュをサポートしています。

ここにあります

RedissonSpringLocalCachedCacheManagerの典型的な構成オブジェクト:

@Configuration 
@ComponentScan 
@EnableCaching 
public static class Application { 
    @Bean(destroyMethod="shutdown") 
    RedissonClient redisson() throws IOException { 
        Config config = new Config(); 
        config.useClusterServers() 
                .addNodeAddress("127.0.0.1:7004", "127.0.0.1:7001"); 
        return Redisson.create(config); 
    } 
    @Bean 
    CacheManager cacheManager(RedissonClient redissonClient) { 
        Map<String, CacheConfig> config = new HashMap<String, CacheConfig>(); 
        // 新建 "testMap" 缓存:ttl=24分钟,maxIdleTime=12分钟 
        config.put("testMap", new CacheConfig(24*60*1000, 12*60*1000)); 
        return new RedissonSpringCacheManager(redissonClient, config); 
    } 
} 
复制代码

さらに、それはまた、設定ファイルJSONやYAML RedissonSpringCacheManagerを読み込みます。

そして、同じことをRMaps

TTL(生存時間)とMaxIdleTimeエレメン:RedissonSpringCacheManager各インスタンスは、2つの重要なパラメータがあります。これらのパラメータを定義または0に設定されていない場合、データは無期限にキャッシュに残ります。

4. JCacheの

JCacheのは、開発者が一時的に格納、検索、更新からキャッシュ、およびオブジェクトを削除することができ、JavaのキャッシュAPIです。

RedissonはJCacheのAPI実装のRedisのを提供します。ここでRedissonのデフォルトの設定JCacheのAPI呼び出しの例です。

MutableConfiguration<String, String> config = new MutableConfiguration<>(); 
CacheManager manager = Caching.getCachingProvider().getCacheManager(); 
Cache<String, String> cache = manager.createCache("namedCache", config); 
复制代码

また、使用はまた、カスタム設定ファイルすることができ、Redisson ConfigオブジェクトまたはオブジェクトがRedisson RedissonClient JCacheのが配置されています。たとえば、次のコードは、カスタム設定Redisson JCacheのを呼び出すために使用されます。

MutableConfiguration<String, String> jcacheConfig = new MutableConfiguration<>(); 
Config redissonCfg = ... 
Configuration<String, String> config = RedissonConfiguration.fromConfig(redissonCfg, jcacheConfig); 
CacheManager manager = Caching.getCachingProvider().getCacheManager(); 
Cache<String, String> cache = manager.createCache("namedCache", config); 
复制代码

JCacheのはRedissonがJCacheのTCKのすべてのテストに合格した達成します。また、個別に検証することができます。


おすすめ

転載: juejin.im/post/5d1e00335188257cbb477277