Я использовал persistent
хранилище Ehcache
для кэширования и хранения данных. Вот код, который я получил:
import org.ehcache.PersistentCacheManager;
import org.ehcache.config.units.EntryUnit;
import org.ehcache.config.units.MemoryUnit;
import java.io.IOException;
import static org.ehcache.config.builders.CacheConfigurationBuilder.newCacheConfigurationBuilder;
import static org.ehcache.config.builders.CacheManagerBuilder.newCacheManagerBuilder;
import static org.ehcache.config.builders.CacheManagerBuilder.persistence;
import static org.ehcache.config.builders.ResourcePoolsBuilder.newResourcePoolsBuilder;
public class home {
public static void main(String[] args) throws IOException {
// Creating Persistent Cache
PersistentCacheManager persistentCacheManager =
newCacheManagerBuilder()
.with(persistence("/tmp/tempProjectCache"))
.withCache("test-cache",
newCacheConfigurationBuilder(
String.class, String.class,
newResourcePoolsBuilder()
.heap(1, EntryUnit.ENTRIES)
.offheap(1, MemoryUnit.MB)
.disk(2, MemoryUnit.MB, true)
)
).build(true);
org.ehcache.Cache persistantCacheStorage = persistentCacheManager.getCache("test-cache", String.class, String.class);
persistantCacheStorage.put("name1","prince");
persistantCacheStorage.put("name2","steven");
System.out.println(persistantCacheStorage.get("name1"));
}
}
Output
Получил:
prince
Отлично сработало. Данные попали на диск. В следующий раз я удалил эту строку из исходного кода
persistantCacheStorage.put("name1","prince");
из кода и запустил код. Теперь Output
был
null
Поскольку это persistent
хранилище, данные уже попали на диск. почему он не получает уже сохраненные данные с диска. Я не знаю, что я делаю неправильно. Если это было воссоздание папки с файлами, то как этого избежать и использовать старые данные кэша в EHCache
Я новичок ie в java
. Помогите мне с некоторыми решениями.