Java中ehcache在磁盘中的持久化存储
我正在为web应用程序进行缓存。我需要在磁盘中写入缓存以进行持久性存储。 怎么做,请指导我。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
服务器重新启动后,缓存应该通过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。在后台线程中,您可以定期循环缓存并将其写入文件。启动应用程序时,可以读取此文件并设置缓存。