2017-07-18 17 views
3

私はBig DataアプリケーションでキャッシュサービスとしてRedisを使用しています。 Redisの主な目的は、毎回のリクエストから受け取った鍵を検証することです。Redissonキャプチャキー期限切れイベント

私たちは、私が挿入し、私はRMap.expire()を使用していることを行うことができます知っているすべてのキーのTTLを割り当てる

key = 1212sads23sads341212saas23asds45 
value = Regular java object with some complex data. 

、以下の通りである。その一例は、キーと値のペアを格納するためRMAPを使用しています。私が得られないのは、特定のキーが期限切れになったときにどうすれば聞くことができるかです。すべてのキーは異なるTTLを持ち、Redisのドキュメントで述べたように、キーの自動有効期限を管理し、イベントも生成します。

私の質問はどのようにイベントを期限切れにしても、それがRedissonのJavaライブラリで生成されてしまったキーの取得生成を取り込むことができ、

  1. のですか?

  2. このより良いアプローチ(組み込みの自動呼吸)、または期限切れのキーをチェックするスレッドを実行する方が良いですか?

答えて

3

2.9.3および3.4​​.3バージョンRedissonは、マップエントリの有効期限のためにリスナーを登録する機能を提供します。ここで

は使用例です:

RMapCache<String, String> mapCache = redisson.getMapCache("myMap"); 
int expireListener = map.addListener(new EntryExpiredListener<Integer, Integer>() { 
    @Override 
    public void onExpired(EntryEvent<String, String> event) { 
     event.getKey(); // expired key 
     event.getValue() // expired value 
     // ... 
    } 
}); 

map.put("key", "value", 10, TimeUnit.SECONDS); 
+0

私はさらに2つの疑問を持って、1.私は、最新バージョンをダウンロードすることができます。 2.レディスでは、実際の期限切れイベントと通知に大幅な遅延が生じる可能性があるため、リスナーをより適切にアプローチしていますか? –

+1

@RahulBorkarあなたの質問に答える:1.ここには[クイックスタート](https://github.com/redisson/redisson#quick-start)ガイドがあります。 2. Redisでは利用できない独自の有効期限アプローチを使用します。はい、実際の有効期限と火災の瞬間との間に何らかの遅延が生じることがあります。 –

+0

詳細な応答をありがとう。あなたが言及した遅れに関するパフォーマンス対策はありますか? –

関連する問題