データの有効期限の種類と戦略の概要
NCache 時間ベースのデータ無効化をサポートしており、キャッシュ データを期限切れにする時間または間隔を指定できます。 時間ベースのデータ無効化は、データ変更の頻度を判断できる状況に適用できます。 たとえば、地域情報は頻繁に更新されない可能性があるため、時間ベースの有効期限を使用してそのようなデータを無効にすることができます。
さらに、キャッシュから古いデータを期限切れにすると、関連する更新されたデータがクライアントに提供されることになります。 たとえば、特定の製品で利用可能な単位がデータベース内で変更される場合がありますが、キャッシュ内では更新されない場合があります。 したがって、一定期間後にそのようなデータをキャッシュから期限切れにすると、次のクライアント要求で新しいデータがキャッシュにロードされます。
データの有効期限のもうXNUMXつの用途は、セッションの維持です。 セッションが一定期間非アクティブであった場合、アイドル状態であるため、キャッシュから削除できます。
キャッシュ項目には有効期限値が追加されます。 NCache 時間ベースの有効期限を持つアイテムのインデックスを維持します。 専用のスレッドは、クリーン インターバルと呼ばれる構成可能な時間間隔の後に、これらの期限切れアイテムのキャッシュ データを定期的にチェックします。 デフォルトでは、その値は 15 秒です。これは、アイテムがキャッシュから削除されるまでにかかる最大時間は (有効期限 + クリーン間隔 + クリーンアップ アクティビティにかかった時間) であることを意味します。 したがって、データの有効期限に応じて、この間隔を慎重に選択する必要があります。
絶対有効期限
アイテムを無効にする正確な日時を指定することにより、絶対有効期限を使用してアイテムをキャッシュに追加できます。 この時間が経過すると、アイテムはキャッシュから削除されます。 ここ、 NCache キャッシュ サーバー上で絶対有効期限の UTC 時間を維持します。これにより、クライアントとキャッシュ サーバーが異なるタイム ゾーンにある場合が容易になります。 これは、クライアントによって指定された有効期限 (タイム ゾーンを問わず) がキャッシュ サーバー上で UTC に変換され、アイテムはクライアントによって指定された正確な日時に期限切れになることを意味します。 有効期限は秒から日、月までの範囲で指定できます。
Note
この機能は以下でも利用できます NCache Professional.
ただし、項目は次のキャッシュ クリーンアップ間隔で期限切れになると削除されることに注意してください。 たとえば、アイテムの有効期限を 10 秒に指定し、キャッシュのクリーンアップ間隔が 15 秒に構成されている場合、アイテムは 15 ~ 25 秒の時間枠内に削除されます。
スライド式の有効期限
この有効期限では、アプリケーションによって使用されている限りキャッシュにデータを保持させ、特定の期間使用されなかったデータを削除する必要があります。 ユーザーがスライディング有効期限を使用してキャッシュ データにアクセスするたびに、キャッシュの寿命は特定の有効期限間隔だけ延長されます。たとえば、スライディング有効期限が 30 秒のアイテムは、ユーザーが少なくとも 30 秒間アクセスしない場合、キャッシュから削除されます。 。 ただし、アクセスするたびに、アイテムの有効期限間隔が 30 秒にリセットされ、キャッシュ内での寿命が 30 秒延長されます。
Note
この機能は以下でも利用できます NCache Professional.
たとえば、セッション データは、セッションがアクティブである限りキャッシュに保存できます。 このタイプのデータの場合、スライド有効期限 (たとえば 15 分) を指定できます。 したがって、指定された時間間隔内にアクティビティが発生した場合、キャッシュ内のセッションの有効期限間隔は 15 分にリセットされます。
絶対有効期限と同様に、スライド有効期限を持つキャッシュ アイテムは、キャッシュのクリーンアップ間隔で削除されます。
警告
キャッシュ項目に有効期限が指定されていない場合、明示的に削除されるまでキャッシュ内に存在します。 これにより、キャッシュ ストレージが過剰になる可能性があります。
こちらもご参照ください 立ち退きポリシー これはの別の機能です NCache キャッシュストレージの使用を制御します。
デフォルトの有効期限
NCache デフォルトの有効期限もサポートされており、データ無効化戦略をより柔軟に設定するのに役立ちます。 デフォルトの有効期限は、 NCache 管理センターまたは config.ncconfしたがって、APIを介して渡される有効期限の値を変更する場合は、コードを変更する必要はありません。 さらに、同じアプリケーションで複数の有効期限値が必要な場合は、デフォルトの有効期限を使用できます。
NCache 次のデフォルトの有効期限を提供します。
- デフォルトの絶対値
- デフォルトのスライド
- デフォルトの絶対より長い
- デフォルトのスライドが長くなります
デフォルトの有効期限はすべて、最小値が5秒です。
Default Absolute が 5 秒で構成され、Default Sliding Longer 有効期限が 10 秒で構成されているとします。 のオブジェクト プロダクト クラスはデフォルトの「絶対」でキャッシュに追加され、セッションはデフォルトの「スライド式の長い有効期限」で追加されます。 オブジェクトが追加されたら、両方の有効期限値を 15 秒に変更します。 新しい有効期限値を使用してオブジェクトを再挿入する代わりに、単純に設定を変更することができます。 NCache 管理センターまたは config.ncconf、コードを変更せずに。
有効期限ポリシーを構成するシナリオは複数あります。 NCache Management Center と API は重複し、次の動作をトリガーします。 デフォルト以外の有効期限とは、絶対有効期限とスライド有効期限を指すことに注意してください。
デフォルトの有効期限 | API呼び出しでの有効期限 | 行動 |
---|---|---|
設定済み | デフォルトの有効期限 | デフォルトの有効期限 |
設定済み | デフォルト以外の有効期限 | デフォルト以外の有効期限 |
設定済み | なし | デフォルトの有効期限 |
設定されていません | デフォルトの有効期限 | 有効期限なし |
設定されていません | デフォルト以外の有効期限 | デフォルト以外の有効期限 |
設定されていません | なし | 有効期限なし |
重要
CacheItem
、Absolute および Sliding Expiration のデフォルト値は NoAbsoluteExpiration および NoSlidingExpiration です。 したがって、デフォルトの有効期限が設定されていても、API で有効期限が設定されていない場合は、 CacheItem
, デフォルトの有効期限値が設定されたデフォルトの有効期限を上書きするため、有効期限は発生しません。
クラスタ化された環境での有効期限
複数のキャッシングサーバーが関与するクラスター化されたキャッシュ環境では、有効期限はさまざまな場所で異なる方法で処理されます NCache トポロジ。
- ミラーリング トポロジでは、アクティブ ノードが有効期限を実行し、パッシブ ノードで同期します。
- 複製 キャッシュの有効期限はコーディネーター ノードによって実行され、操作は他のクラスター化されたノードに同期されます。
- パーティション化 トポロジでは、データが別々のノードに分散されるため、各ノードが独自のアイテムの有効期限を担当します。
- パーティション-レプリカ トポロジでは、有効期限はアクティブノードで実行され、それぞれのレプリカに伝播されます。
- クライアントキャッシュ クラスタ化されたキャッシュで有効になっているのと同じ有効期限を利用します。 ただし、スライドの有効期限は、キャッシュと同期されると絶対有効期限として追加されます。これは、値がクラスター化されたキャッシュではスライドするがクライアントキャッシュではスライドしない場合に、不整合が発生するためです。