前はspringboot統合springcahceについて話しました:https://www.cnblogs.com/a565810497/p/10931426.html
しかし、キャッシュの有効時間を設定することはできません。
ここではグアバセットspringcahceの効果的な時間の使い方について話をします
最初のステップ:上のMaven依存を追加します。
<のgroupId> com.google.guava </のgroupId> <たartifactId>グアバ</たartifactId> <バージョン> 25.1-JRE </バージョン> </依存>
第二のステップ、構成のCacheManager。
@Bean 公共のCacheManagerのCacheManager(){ GuavaCacheManagerのCacheManager = 新新GuavaCacheManager(); cacheManager.setCacheBuilder(CacheBuilder.newBuilder()expireAfterAccess(。 2 、TimeUnit.SECONDSは)); //これは、I 2秒の有効期間の設定設定されている リターンをCacheManager; }
私は、このコードは、クラスを開始する予定です書いています。
ここに
expireAfterAccess有効時間が固定リフレッシュ後の読み出しおよびリフレッシュするために書き込み、利用複数存在する、設定されている、参照が詳述されてもよい。https://blog.csdn.net/abc86319253/article/details/53020432
私たちは、テストコードを見て:
@Test 公共 ボイド getTime()スローInterruptedExceptionあるが{ int型 I = 1 。 一方、(I <= 20 ){ log.info( "" + "第" + I + "次获取时间" + testTimeService.getTestTime())。 I ++ ; もし(I <= 10 ){ のThread.sleep( 1000年)。 } 他{ のThread.sleep( 3000 ); } } }
、私たちは20回、最初の10回、1秒に1回のテイクを取得し、そのキャッシュが期限切れになると同じである必要があり、時間を得ることはありません。
戻る10倍の時間を得るために、一度、この時間は、バッファにキャッシュしてはならない期限が切れている3秒ごとに取得するには、最新の時間でなければなりません
実際の結果。
この記事の出所:https://gitee.com/Hiro-D/Java/tree/master/guava-cache
あなたはキャッシュの有効時間を設定しますが、デフォルトの有効時間であることができますが、グアバを使用すると、異なるキャッシュ異なる時間のグアバを持つようにしたい場合は、(私は方法を見つけることができませんでした)あまり便利で、このキャッシュがローカルキャッシュで、一瞬考えて、キャッシュ有効時間を複数の複数、次springcahceを述べる+ Redisの異なる有効時間を設定するように又はspringcahce Redisのセットが、提供されてもよいです。