다음에 대한 JCache 제공자 NCache

JCache는 Java 개체의 메모리 캐싱에 사용되는 Java 기반 API입니다. 여기에는 객체 생성, 무효화, 스풀링, 공유 액세스 및 JVM(Java Virtual Machine) 간의 일관성도 포함됩니다.

NCache 광범위한 기능 및 도구 세트와 함께 제공되는 매우 강력하고 다재다능한 분산 캐싱 솔루션입니다. NCache JCache(JSR 107) 사양의 구현을 제공합니다. 이를 사용하면 에서 제공하는 수많은 기능과 도구의 이점을 얻을 수 있습니다. NCache.

캐시 초기화

캐시에서 작업을 수행하려면 JCache 인스턴스를 생성해야 합니다. Java에서 getCache() 메서드는 JCache 인스턴스를 가져오는 가장 편리한 메서드 중 하나로 간주됩니다. 다음 코드 예제는 이 메서드를 사용하여 캐시를 초기화하는 방법을 보여줍니다.

/*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의 또 다른 기능은 데이터 만료 여기서 캐시 데이터는 시간을 기준으로 만료됩니다. JCache는 두 가지 주요 유형의 만료를 지원합니다. 절대 만료슬라이딩 만료. 절대 만료에서는 캐시 내의 데이터가 고정된 시간 간격 후에 만료됩니다. 슬라이딩 만료에서 캐시 내의 데이터는 시간 간격 후에 만료되지만 이 시간 간격은 이 데이터에 액세스할 때마다 재설정됩니다.

절대 및 슬라이딩 만료가 정의된 캐시에서 항목을 추가하고 업데이트할 수 있습니다. 다음 코드 예제에서 데이터는 절대 만료가 정의된 캐시에 추가됩니다.

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 캐시 인스턴스가 있어야 합니다.

다음 코드 예제는 JCache API를 사용하여 캐시 인스턴스를 가져오는 방법을 보여줍니다. 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 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.