我正在构建使用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
文件到该目录。
我不太明白为什么要缓存到磁盘,除非您确实为存储而束手无策。磁盘缓存对于本地缓存而言不是很有效,并且不能在分布式环境中工作。
除了使用内存或磁盘缓存之外,您还可以使用其他缓存插件,例如memcached或redis。如果您需要在这些实例中从应用程序外部访问缓存,则可以使用另一种实现方式进行访问。例如,如果您使用redis,则可以使用redis-cli。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句