2-х уровневый кеш в java - PullRequest
       3

2-х уровневый кеш в java

4 голосов
/ 26 января 2011

Как мне организовать двухуровневый кеш в Java?

  • 1-й уровень - память
  • 2-й уровень - файловая система

Где я могу найтиинформацию о двухуровневой реализации кеша и настройке стратегий кеширования или можете показать какие-либо методы, которые могут решить эту проблему.

Ответы [ 5 ]

2 голосов
/ 06 июня 2014

Я предлагаю использовать imcache и загружать необходимые элементы с диска с помощью загрузчика кэша следующим образом,

Cache<String,Object> yourCache = CacheBuilder.
   concurrentHeapCache().cacheLoader(new CacheLoader<String, Object>() {
   public Object load(String key) {
   //code to load item from file.
   }
}).build();  
1 голос
/ 26 января 2011

Похоже, использование опции 2 с опцией перезаписи на диск будет работать для OP.Эти 2 URL могут помочь: http://memcached.org/ и http://ehcache.org/

0 голосов
/ 27 января 2017

Я создал что-то, что может пригодиться для ваших нужд.

https://github.com/enryold/onion-cache

0 голосов
/ 26 января 2011

Я использовал OS Cache - http://www.opensymphony.com/oscache/wiki/Feature%20List.html И нашел это одним из лучших способов реализации 2-уровневого кэширования.

  1. Работает как хэш-карта с парами ключ-значение.

  2. Он прозрачно хранит наиболее часто используемые данные в памяти, а затем обменивает остальные в файловую систему (вы можете изменить алгоритм)очень хорошо масштабируетсяДаже для большого количества объектов он не демонстрирует никакого снижения производительности

  3. Он также поддерживает кластеризацию

  4. Он легко настраивается

  5. БЕСПЛАТНО и с открытым исходным кодом!

0 голосов
/ 26 января 2011

Непонятно, в чем ваш вопрос, если вы говорите о спящем кэшировании 2-го уровня, см. Здесь http://www.javalobby.org/java/forums/t48846.html

Если вы просто хотите узнать, как кэшировать в Java, у вас есть несколько вариантов 1.) Храните данные в HashMap 2.) Используйте Memcached 3.) Сохраните его в файле 4.) Хранить в базе данных

У каждого есть свои компромиссы, нам нужно знать больше о вашей проблеме, чтобы дать совет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...