キャッシュ内のスライド有効期限
NCache を使用すると、アプリケーションで使用されている限りキャッシュ データを保持し、特定の期間使用されなかったデータを削除するようにスライディング有効期限を構成できます。 これは、特定の期間アイドル状態だったセッションは非アクティブとみなされ、キャッシュによって削除できるため、セッションを維持する場合に特に役立ちます。
スライディング有効期限では、指定した時間間隔内にデータがアクセスされた場合、キャッシュ項目の寿命が間隔値だけ延長されます。 たとえば、セッションは 10 分の有効期限で追加されます。 セッションは 6 分目にアクセスされるため、キャッシュ内のセッションの存続期間はさらに 10 分延長されます。
キャッシュでスライド有効期限を使用するための前提条件
スライド有効期限付きのアイテムの追加/更新
Note
この機能は以下でも利用できます NCache Professional.
キャッシュアイテムを追加/更新して、有効期限を設定できます。 インセット 方法。
CacheItem
によって提供されるカスタムクラスです NCache これを使用すると、キャッシュにデータを追加でき、このクラスのオブジェクトに関連付けられた追加のメタデータを設定することもできます。 このメタデータは、有効期限、依存関係などのアイテムのプロパティを定義します。
次の例では、の値を設定します Expiration
5分間のスライディング有効期限のプロパティ CacheItem
キーが存在しない場合はキャッシュに追加し、存在する場合はアイテムを更新します。 このCacheItemは、5分後にキャッシュから削除されます。
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a new CacheItem for this product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.Sliding, TimeSpan.FromMinutes(5));
cacheItem.Expiration = expiration;
// Add/Update item with expiration
cache.Insert(key, cacheItem);
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = fetchProductFromDB(1001);
// Generate a unique cache key for this product
String key = "Product:" + product.getProductID();
// Create a new CacheItem for this product
CacheItem cacheItem = new CacheItem(product);
// Set Expiration type and TimeSpan
Expiration expiration = new Expiration(ExpirationType.Sliding, TimeSpan.FromMinutes(5));
cacheItem.setExpiration(expiration);
// Add/Update item in cache with expiration
cache.insert(key, cacheItem);
// This is an async method
// Precondition: Cache is already connected
// Get product from database against given product ID
var product = this.fetchProductFromDB(1001);
// Generate a unique cache key for this product
var key = "Product:" + product.getProductID();
// Create a new CacheItem for this product
// You also need to specify the FQN (Fully Qualified Name) of the class
var cacheItem = new ncache.CacheItem(product,"FQN.Product");
// Set Expiration type and TimeSpan
var expiration = new ncache.Expiration(ncache.ExpirationType.Sliding, ncache.TimeSpan.FromMinutes(5));
cacheItem.setExpiration(expiration);
// Add/Update item in cache with expiration
await this.cache.insert(key, cacheItem);
# Precondition: Cache is already connected
# Get product from database
product = fetch_product_from_db()
# Generate a unique cache key for this product
key = "Product:" + product.get_product_id()
# Create a new CacheItem for this product
cache_item = ncache.CacheItem(product)
# Set Expiration type and TimeSpan
expiration = ncache.Expiration(ncache.ExpirationType.SLIDING, ncache.TimeSpan.from_minutes(5))
cache_item.set_expiration(expiration)
# Add / Update item in cache with expiration
cache.insert(key, cache_item)
API でスライディング有効期限を指定するには、 DefaultSliding
および DefaultSlidingLonger
で設定された値 NCache 管理センターまたは config.ncconf。 これにより、必要に応じて、コードを変更せずに値を外部から変更できる柔軟性が得られます。
次のコードは、構成されたデフォルトの有効期限 (この場合は DefaultSliding) をアイテムに関連付けます (キーがキャッシュに存在しない場合はアイテムをキャッシュに追加し、キーが存在する場合は有効期限を使用してアイテムを更新します)。 構成された時間間隔内にアイテムにアクセスしない場合、アイテムは期限切れになります。 そうでない場合、アイテムの寿命は同じ時間間隔だけ延長されます。
重要
デフォルトの有効期限を有効にするには、 NCache 管理センター またはconfig.ncconf。 デフォルトの有効期限の API を渡し、それが NCache 管理センターまたは config.ncconf、 うまくいかないだろう。
// Pre-condition: Cache is already connected
// Get product from database against given product ID
Product product = FetchProductFromDB(1001);
// Generate a unique cache key for this product
string key = $"Product:{product.ProductID}";
// Create a cacheItem instance for product
var cacheItem = new CacheItem(product);
// Set Expiration TimeSpan
var expiration = new Expiration(ExpirationType.DefaultSliding);
cacheItem.Expiration = expiration;
//Add/Update item into the cache with expiration
CacheItemVersion version = cache.Insert(key, cacheItem);
// Precondition: Cache is already connected
// Get product from database against given product ID
Product product = fetchProductFromDB(1001);
// Generate a unique cache key for this product
String key = "Product:" + product.getProductID();
// Create a cacheItem instance for product
CacheItem cacheItem = new CacheItem(product);
// Set Expiration type
Expiration expiration = new Expiration(ExpirationType.DefaultSliding);
cacheItem.setExpiration(expiration);
//Add/Update item into the cache with expiration
CacheItemVersion version = cache.insert(key, cacheItem);
// This is an async method
// Precondition: Cache is already connected
// Get product from database against given product ID
var product = this.fetchProductFromDB(1001);
// Generate a unique cache key for this product
var key = "Product:" + product.getProductID();
// Create a cacheItem instance for product
// You also need to specify the FQN(Fully Qualified Name) of the class
var cacheItem = new ncache.CacheItem(product,"FQN.Product");
// Set Expiration type
var expiration = new ncache.Expiration(ncache.ExpirationType.DefaultSliding);
cacheItem.setExpiration(expiration);
//Add/Update item into the cache with expiration
var version = await this.cache.insert(key, cacheItem);
# Precondition: Cache is already connected
# Get product from database
product = fetch_product_from_db()
# Generate a unique cache key for this product
key = "Product:" + product.get_product_id()
# Create a new CacheItem for this product
cache_item = ncache.CacheItem(product)
# Set Expiration type and TimeSpan
expiration = ncache.Expiration(ncache.ExpirationType.DEFAULT_SLIDING)
cache_item.set_expiration(expiration)
# Add/Update item in cache with expiration
version = cache.insert(key, cache_item)
その他のリソース
NCache スライディング有効期限のサンプルアプリケーションを提供します GitHubの.
も参照してください
。ネット: Alachisoft.NCache.ランタイム.キャッシュ 名前空間
Java: comの。alachisoft.ncache.ランタイムキャッシュ 名前空間
Node.js: 満了 とに提供されます。
Python: ncache.ランタイムキャッシュ とに提供されます。