다음에 대한 JCache 제공자 NCache

NCache 이 도구는 분산형 JCache Provider 역할을 하며, Java 애플리케이션이 JSR 107 표준을 준수하는 캐싱을 활용하여 데이터베이스 병목 현상을 제거하고 수평 확장을 가능하게 합니다. JCache는 Java 객체의 메모리 내 캐싱에 사용되는 Java 기반 API입니다. 여기에는 객체 생성, 무효화, 스풀링, 공유 액세스 및 Java 가상 머신(JVM) 간의 일관성 유지가 포함됩니다.

NCache 광범위한 기능 및 도구 세트와 함께 제공되는 매우 강력하고 다재다능한 분산 캐싱 솔루션입니다. NCache 이 구현은 JSR 107 사양의 고성능 구현을 제공하여 밀리초 미만의 지연 시간으로 분산 캐싱이 필요한 Java 애플리케이션과의 완벽한 호환성을 보장합니다. 이 구현을 활용하면 다음과 같은 기능을 통합할 수 있습니다. NCache아키텍처상의 마찰 없이 엔터프라이즈급 기능을 JCache 호환 환경에 통합할 수 있습니다.

JCache 인스턴스를 초기화하는 방법은 무엇인가요? 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");

JCache에서 지원하는 기본적인 작업에는 어떤 것들이 있나요? NCache?

캐시가 성공적으로 초기화되고 캐시 핸들을 얻은 후에는 캐시에서 다음과 같은 많은 작업을 수행할 수 있습니다. 첨가, 가져 오는 중, 업데이트예산 및 삭제 중 캐시의 데이터.

다음 코드 예제는 캐시 인스턴스(위의 코드 예제에서 만든)를 사용하여 캐시에서 기본 작업을 수행하는 방법을 보여줍니다.

/*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는 데이터 만료를 어떻게 관리하나요? NCache?

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 리스너를 이용한 캐시 이벤트 모니터링

캐시 수준 알림 등록된 특정 이벤트가 발생할 때 트리거되는 일반 이벤트입니다. 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 제공하지만 JCache가 제공하지 않는 경우는 다음과 같습니다.

제품 특장점 표준 JCache(JSR 107) NCache JCache 제공자
검색 키 기반 방식만 사용 가능 SQL 및 LINQ 쿼리
데이터 태그 지원되지 않음 unwrap을 통해 지원됩니다.
고집 Basic 정독/정독
스케일링 JVM에 의해 제한됨 선형적으로 확장 가능한 클러스터

에서 제공하는 이 모든 기능을 사용하려면 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);

다음에 무엇을할지?

자주 묻는 질문 (FAQ)

The NCache JCache Provider는 JSR 107(JCache) 사양을 100% 준수하는 구현체입니다. 이를 통해 Java 개발자는 표준화된 캐싱 API를 사용하면서 다음과 같은 이점을 누릴 수 있습니다. NCache고가용성과 선형 확장성을 보장하는 자바 애플리케이션용 분산 아키텍처입니다.

마이그레이션은 간단합니다. 왜냐하면 NCache JSR 107 표준을 엄격히 준수합니다. 다음 내용만 포함하면 됩니다. NCache 프로젝트에 JCache jar 파일을 추가하고 구성하세요. 캐싱 제공자 당신을 가리키다 NCache 클러스터. 기본적인 캐싱 작업에는 독점 코드 변경이 필요하지 않습니다.

예. NCache JSR 107 ExpiryPolicy(절대 만료 및 슬라이딩 만료 포함) 및 CacheEntryListener 인터페이스를 완벽하게 구현합니다. 이를 통해 로컬 캐시에서 클라우드 캐시로 전환할 때 캐시 제거 로직과 이벤트 기반 워크플로의 일관성을 유지할 수 있습니다. NCache 분산 클러스터.

네. 사용함으로써 javax.cache.Cache.unwrap 이 메서드를 사용하면 기본 요소에 접근할 수 있습니다. NCache API를 통해 SQL과 유사한 쿼리, 항목 태깅, 데이터베이스 동기화 등 표준 JSR 107 사양에는 없는 고급 기능을 사용할 수 있습니다.

전혀. NCache Spring Cache 및 Hibernate 2차 캐시(L2)를 위한 전용 공급자를 제공하며, 이러한 공급자는 JCache 표준을 활용합니다. 이를 통해 엔터프라이즈 Java 프레임워크에 원활하게 통합하여 데이터베이스 부하를 줄이고 응답 시간을 개선할 수 있습니다.

문의하기

전화

+1 214-619-2601 (미국)

© 저작권 Alachisoft 2002 - . 판권 소유. NCache 는 Diyatech Corp.의 등록상표입니다.