java中的2级缓存

时间:2011-01-26 12:34:15

标签: java caching

如何在Java中组织2级缓存?

  • 第一级 - 记忆
  • 第二级 - 文件系统

我可以在哪里找到有关2级缓存实施和缓存策略配置的信息,或者您可以向我展示任何可以解决此问题的方法。

5 个答案:

答案 0 :(得分:2)

我建议使用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 :(得分:1)

看起来使用带有覆盖到磁盘选项的选项2将适用于OP。这2个网址可以提供帮助:http://memcached.org/http://ehcache.org/

答案 2 :(得分:0)

不清楚您的问题是什么,如果您正在讨论hibernate二级缓存,请参阅此处http://www.javalobby.org/java/forums/t48846.html

如果你只是想知道如何在java中缓存,那么你有几个选择 1.)将数据存储在HashMap中 2.)使用Memcached 3.)将其存储在文件中 4.)将其存储在数据库中

每个人都有自己的权衡,我们需要了解更多关于你的问题的建议。

答案 3 :(得分:0)

我使用过操作系统缓存 - http://www.opensymphony.com/oscache/wiki/Feature%20List.html并发现它是实现2级缓存的最佳方法之一。

  1. 它的工作方式类似于带有键值对的散列图。

  2. 它透明地将最常用的数据存储在内存中,然后将其余数据交换到文件系统(您可以更改算法)

  3. 它非常适合扩展。即使对于大量对象,它也不会显示任何性能下降

  4. 它也支持群集

  5. 高度可配置

  6. 免费开源!

答案 4 :(得分:0)

我已经构建了一些可以满足您需求的东西。

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