【发布时间】:2016-09-06 11:37:00
【问题描述】:
我有一个使用基于 Guava 缓存的弹簧缓存的弹簧应用程序。由于高吞吐量需求和后写功能,我们现在正在考虑迁移到 Gemfire。 我成功地将 Gemfire 配置为缓存,并且能够从缓存中读取和写入。在所有的配置示例中,配置需要如下定义LocalRegionFactory:
@Bean
public Region<Long,Person> myPersonRegion(LocalRegionFactoryBean<Long, Person> personRegion) throws Exception {
return personRegion.getObject();
}
@Bean
public LocalRegionFactoryBean<Long, Person> personRegion(GemFireCache cache,AsyncEventQueue gemfireQueue) {
LocalRegionFactoryBean<Long, Person> personRegion = new LocalRegionFactoryBean<>();
personRegion.setCache(cache);
personRegion.setClose(false);
personRegion.setName("person");
personRegion.setAsyncEventQueues(new AsyncEventQueue[]{gemfireQueue});
personRegion.setPersistent(false);
return personRegion;
}
bean 定义好后,我们可以使用@Cacheable(value="person"), @CacheEvict(value="person")。如果我们直接使用缓存名称,gemfire 会抛出缓存未定义的错误。
我们使用 Guava(或 Hazelcast、redis 等)的经验是,我们不需要显式定义缓存。它会在第一次出现时由 spring 自动创建。
有什么方法可以配置 gemfire 以同样的方式运行?
【问题讨论】:
标签: spring caching spring-cache gemfire spring-data-gemfire