JCacheプロバイダー NCache

JCacheは、Javaオブジェクトのメモリキャッシングに使用されるJavaベースのAPIです。 これには、オブジェクトの作成、無効化、スプーリング、共有アクセス、およびJava仮想マシン(JVM)間の整合性も含まれます。

NCache は非常に強力で用途の広い分散キャッシュソリューションであり、膨大な機能とツールのセットが付属しています。 NCache JCache(JSR 107)仕様の実装を提供します。 これを使用すると、によって提供される膨大な数の機能とツールのメリットを享受できます。 NCache.

キャッシュを初期化する

キャッシュに対して操作を実行するには、JCacheインスタンスを作成する必要があります。 Javaでは、getCache()メソッドは、JCacheインスタンスを取得するための最も便利なメソッドのXNUMXつと見なされています。 次のコード例は、このメソッドを使用してキャッシュを初期化する方法を示しています。

/*Create an instance of JCache's caching provider to get JCacheManager's instance */
CachingProvider provider = Caching.getCachingProvider();
CacheManager manager = provider.getCacheManager();

/*Get a cache from manager via its string name.*/
javax.cache.Cache jCache = manager.getCache("myreplicatedcache");

基本的なキャッシュ操作

キャッシュが正常に初期化され、キャッシュハンドルを取得すると、次のようなキャッシュに対して多くの操作を実行できます。 追加, フェッチ, 更新, 削除する キャッシュからのデータ。

次のコード例は、キャッシュインスタンス(上記のコード例で作成したもの)を使用して、キャッシュに対して基本的な操作を実行する方法を示しています。

/*Adding data to the cache*/
Product product = fetchProductFromDB();
String key = "Product:" + product.getProductID();       
jCache.put(key, product);

/*Update data in the cache*/
product.setUnitsInStock(newValue); // updated units
jCache.replace(key, product);
	
/*Get data from the cache*/
Object item = jCache.get(key);
	
/*Remove data from the cache*/
Boolean result = jCache.remove(key);

キャッシュ内のデータの有効期限

JCacheのもうXNUMXつの機能は データの有効期限 キャッシュデータは時間に基づいて期限切れになります。 JCacheは、XNUMXつの主要なタイプの有効期限をサポートします。 絶対有効期限 & スライド式の有効期限。 絶対有効期限では、キャッシュ内のデータは一定の時間間隔の後に期限切れになります。 スライディング有効期限では、キャッシュ内のデータは時間間隔の後に期限切れになりますが、この時間間隔は、このデータにアクセスするたびにリセットされます。

アイテムは、絶対有効期限とスライド有効期限が定義されているキャッシュで追加および更新できます。 次のコード例では、絶対有効期限が定義された状態でデータがキャッシュに追加されます。

CachingProvider cachingProvider = Caching.getCachingProvider();
CacheManager manager = cachingProvider.getCacheManager();
    Customer customer = new Customer();
    customer.setAge(22);
    String key = "Customer:" + customer.getCustomerID();

    //configure the expiration duration
    CompleteConfiguration<Object, Object> cacheConfig = new MutableConfiguration().setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(Duration.ONE_MINUTE));

    //create cache with customized configuration settings
    javax.cache.Cache jCache = manager.createCache("mypartitionedcache", cacheConfig);

    //add item to cache which will expire after 1 minute
    jCache.put(key, customer);

キャッシュ内のイベント通知

キャッシュレベルの通知 特定の登録済みイベントが発生したときにトリガーされる一般的なイベントです。 JCacheからイベント通知を取得するには、関連するイベント関連のインターフェイスを実装する必要があります。

以下の例では、イベントフィルターファクトリを実装していることを前提としています。

// class that implements the event-listener factory
public class MyCacheEntryListener<K, V>
   implements CacheEntryCreatedListener<K, V>, Serializable
   {...
           for (CacheEntryEvent<? extends K,? extends V> event: events)
            {
            System.out.println("Received a " + event);
            }
      ...
    }
    ...
//configuring
MyCacheEntryListener<String,String> m_listener = new MyCacheEntryListener<String,String>();

MutableConfiguration<String, String> config = new MutableConfiguration<String, String>();

config.setTypes(String.class, String.class).addCacheEntryListenerConfiguration(
                    new MutableCacheEntryListenerConfiguration<String, String>
                            (FactoryBuilder.factoryOf(m_listener),FactoryBuilder.factoryOf(
                                    new MyCacheEntryEventFilter<String, String>()),true,true));

Cache<String, String> jCache = cacheManager.createCache("myreplicatedcache", config);

使い方 NCache API

によって提供されるAPI NCache JCacheが提供するAPIと比較して、より堅牢な機能を提供します。 いくつかの機能 NCache は提供しますが、JCacheは次のようにはなりません。

によって提供されるこれらの機能のすべてを使用するために NCache APIには、そのキャッシュのインスタンスが必要です。

次のコード例は、JCacheAPIを使用して次のキャッシュインスタンスを取得する方法を示しています。 NCache unwrapメソッドを使用します。 次に、このインスタンスを使用して、データをキャッシュに追加します。 タグ (の機能 NCache)有効。 キーの代わりにこれらのタグを使用して、後でキャッシュからデータを取得できます。

... 
com.alachisoft.ncache.client.Cache cache = null;
cache = (com.alachisoft.ncache.client.Cache) jCache.unwrap(com.alachisoft.ncache.client.Cache.class);
Customer customer = fetchCustomer();
String customerKey = “Customer” + customer.getCustomerID();

// Specify Tags
List<Tag> tags = List.of(new Tag("East Coast Customers"));
CacheItem cacheItem = new CacheItem(customer);
cacheItem.setTags(tags);
cache.add(customerKey, cacheItem);

次はどうする?

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。