我正在开发一个应用程序,需要生成并频繁访问成千上万的文件。由于磁盘空间使用原因,我只想在任何给定时间保留固定数量的这些文件。例如,文件被写入到C:\ my-folder。一旦my-folder达到1000个文件,如果我需要保存新文件,我希望从my-folder中删除LRU文件。是否可以使用ehcache(或任何缓存工具)实现此功能?我认为我可以在ehcache中使用磁盘存储,但是每当我调用缓存上的
这里展示了我的一些代码片段:
感谢您,杰夫。
get
时,它只查看内存中的键而不是磁盘中的键。这里展示了我的一些代码片段:
// create the cache
CacheManager cm = CacheManager.create();
String name = getName();
CacheConfiguration config = new CacheConfiguration(name, 1)
.maxElementsOnDisk(2000).diskPersistent(true)
.overflowToDisk(true).eternal(true).diskStorePath(name)
.memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LRU);
Cache cache = new Cache(config);
cm.addCache(cache);
// I do a couple of puts
cache.put(new Element("key1", val1));
cache.put(new Element("key2", val2));
cache.flush();
// now key1 is no longer in the cache (since max memory size is 1), but I'd like to look on disk since I have set maxElementsOnDisk to 2000
Element el = cache.get("key1");
感谢您,杰夫。