10.4.5. ExpirationAlgorithm


org.jboss.cache.eviction.ExpirationAlgorithm は絶対有効期限を基にノードをエビクトするポリシーです。 有効期限は org.jboss.cache.Node.put() メソッドを使用して表示されます。 org.jboss.cache.Node.put() メソッドは文字列キー expiration と絶対時間を java.lang.Long オブジェクトとして使用し、 値は UTC (協定世界時) 1970 年 1 月 1 日午前 0 時から経過した時間 (ミリ秒単位) で表示されます (java.lang.System.currentTimeMillis() によって提供される相対時間と同じです)。
このポリシーによって、 追加と削除に対し一定順序 ( O (1) ) が保証されます。 内部的に、 ノードの有効期限と FQN が含まれるソートされたセット (TreeSet) が保存され、 基本的にヒープとして機能します。
このポリシーが持つ設定パラメータは次の通りです。
  • expirationKeyName - エビクションアルゴリズムで使用されるノードキー名です。 設定のデフォルトは expiration になります。
  • maxNodes - このリージョンで許可されるノードの最大数になります。 0 は即時失効、 -1 は無制限を表します。
次の一覧は、 有効期限の表示方法とポリシーの適用方法を表しています。
   Cache cache = DefaultCacheFactory.createCache();
   Fqn fqn1 = Fqn.fromString("/node/1");
   Long future = new Long(System.currentTimeMillis() + 2000);

   // sets the expiry time for a node
   cache.getRoot().addChild(fqn1).put(ExpirationConfiguration.EXPIRATION_KEY, future);

   assertTrue(cache.getRoot().hasChild(fqn1));
   Thread.sleep(5000);

   // after 5 seconds, expiration completes
   assertFalse(cache.getRoot().hasChild(fqn1));
ノードの有効期限はリージョンマネージャが wakeUpIntervalSeconds ごとにウェイクアップする時のみチェックされるため、 エビクションは表示されている時間の数秒後に発生する可能性があります。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る