Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中ehcache在磁盘中的持久化存储_Java_Ehcache - Fatal编程技术网

Java中ehcache在磁盘中的持久化存储

Java中ehcache在磁盘中的持久化存储,java,ehcache,Java,Ehcache,我正在为web应用程序进行缓存。我需要在磁盘中写入缓存以进行持久性存储。 怎么做,请指导我。 服务器重新启动后,缓存应该通过Java读取磁盘。如何实现这一点我使用的是ehcache 2.4.3版jar,我已经用技巧实现了您需要的东西。为我工作 步骤1: <diskStore path="java.io.tmpdir" /> <cache name="listOfStates" maxElementsInMemory="0" eternal="true" overflowTo

我正在为web应用程序进行缓存。我需要在磁盘中写入缓存以进行持久性存储。 怎么做,请指导我。
服务器重新启动后,缓存应该通过Java读取磁盘。如何实现这一点

我使用的是ehcache 2.4.3版jar,我已经用技巧实现了您需要的东西。为我工作

步骤1:

 <diskStore path="java.io.tmpdir" />
 <cache name="listOfStates" maxElementsInMemory="0" eternal="true" overflowToDisk="true"  diskPersistent="true"></cache>

创建并发布了应用程序。上述配置在我的临时驱动器中创建了listOfStates.data文件。(文件也有大小)

步骤2:


maxElementsInMemory=“0”
更改为
maxElementsInMemory=“1”
并生成和发布了应用程序。这次缓存的数据是从磁盘加载的。不会执行代码(我使用@Cacheable使用的Spring方法级缓存)来缓存数据

缓存通常用于在内存中保存数据,否则必须从持久性存储器中检索数据。难道它不能阻止缓存对其进行持久化吗?场景可以在我的应用程序中。这是它第一次访问100个数据文件。。。因此它从数据库中获取。正在执行某些操作的用户。经常使用的文件很少,从未正常访问的文件很少。因此,如果我在持久性存储中存储频繁的文件,那么性能会更好。实际上,ehcache的文档中有一页介绍了这个主题:我认为磁盘中的持久性存储选项仅在许可证功能中可用。我只想实现开放源代码,并想自己实现存储。任何指针都将是有用的。如何做。我不想要BigMemory Go和MAX Features。在后台线程中,您可以定期循环缓存并将其写入文件。启动应用程序时,可以读取此文件并设置缓存。