gpt4 book ai didi

java - Play Framework 缓存存储在哪里?

转载 作者:行者123 更新时间:2023-11-30 06:15:15 25 4
gpt4 key购买 nike

我正在构建使用 Play Framework 的 Java 应用程序,访问缓存文件对我来说至关重要。

我正在寻找 Play Framework 缓存所在的位置。那是在磁盘上的某个地方吗?如果是,在哪里?

我能否以某种方式从它(例如从 Windows 资源管理器)访问文件,或者它是故意对用户隐藏的(或者可能是加密的)?

最佳答案

Play 的默认缓存实现使用 EhCache,它是一种内存缓存。所有缓存的(应该)序列化为字节,并存储在内存中的某个地方。据我所知,没有加密。所以不,没有您可以访问的文件。因为它是内存缓存,所以一旦您关闭或重新启动服务器,它就会消失。

正如@RichDougherty 所指出的,您可以将EhCache 配置为缓存到磁盘,而不是内存。我将这个 ehcache.xml 放到了我的 conf 目录中:

<ehcache> 
<diskStore path="/home/mz/temp"/>
<defaultCache
maxEntriesLocalHeap="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
maxEntriesLocalDisk="10000000"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU">
<persistence strategy="localTempSwap"/>
</defaultCache>
</ehcache>

..将二进制 play.data 文件吐出到该目录中。

我不太明白你为什么要缓存到磁盘,除非你真的被内存所限。磁盘缓存对于本地缓存来说不是很有效,并且在分布式环境中也不起作用。

代替内存或磁盘缓存,您可以使用另一个缓存插件,如 memcachedredis .如果您需要在这些实例中从应用程序外部访问缓存,那么您可以使用其他实现来实现。例如,如果您使用 redis,则可以使用 redis-cli。

关于java - Play Framework 缓存存储在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29125175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com