Fil*_*lip 2 java caching playframework
我正在构建使用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.