Я заметил, что в соответствии с документацией для создания кеша вам необходимо создать экземпляр или получить CacheManager и добавить к нему кэш.Нужно ли всегда использовать CacheManager?
singletonManager = CacheManager.create();
Cache memoryOnlyCache = new Cache("testCache", 5000, false, false, 5, 2);
singletonManager.addCache(memoryOnlyCache);
Cache test = singletonManager.getCache("testCache");
Однако следующий код, кажется, работает
public class MyCache {
private static Cache cache = null;
...
private MyCache() {
cache = new Cache(cacheName, 200, MemoryStoreEvictionPolicy.LFU, false, null, false, timeToLiveSeconds, 0L, false, 0, null);
cache.initialise();
}
}
Так что мои вопросы:
1/Почему это работает? Я проверил, что могу добавлять или удалять записи, и срок действия кеша истек.
2/Если это будет работать, но не является надлежащим способом его реализации, почему инициализация является общедоступной ?. Он может иметь доступ по умолчанию.
При использовании нескольких кэшей через узлы CacheManagers позволяет настраивать CacheManagerPeerListeners, CacheManagerPeerProviders и т. Д., Которые полезны при распространении любых изменений в кэш или кэш-записи, чтобы убедиться, что все они синхронизированы или нестабильны. Сценарий реального времени - использование Ehcache в качестве кэша второго уровня спящего режима, развернутого на нескольких узлах. –
Спасибо за ваш ответ @Louis. Я согласен с тем, что говорится в документации ehCache 2.x. То, что я хотел бы понять, - вот что такое ** CacheManager **. Можно ли назвать несколько проблем? (т. е. выселение, переполнение диска, постоянство, ...) – martinchin2289
Перечислены некоторые из обязанностей –