【问题标题】:Storing actual files in cache将实际文件存储在缓存中
【发布时间】:2013-08-02 06:16:20
【问题描述】:

我有需要存储在 Google Guava 缓存中的 Microsoft Office 文件。键是fileid,值是实际的word文档。我在 ByteArrayOutput 流中有那个 word 文档,但存储 ByteArrayOutput 流不是一个好主意。还有其他想法吗?

【问题讨论】:

    标签: java file caching guava in-memory


    【解决方案1】:

    如果您真的想缓存二进制内容,您可以将输出流写入字节数组并缓存该数组,但我建议您先尝试 Peter Lawrey 的解决方案。唯一的性能损失是您需要通过操作系统读取文件,但很难想象,您执行了如此多的操作,这将是一个问题。

    【讨论】:

    • 喜欢 - 会试试看。
    【解决方案2】:

    操作系统磁盘缓存已缓存在内存中的文件中,您以后可能会使用这些文件。我会先利用它。这意味着您需要缓存的只是文件名等元数据

    【讨论】:

    • 它是一个运行在服务器上的Web应用程序,它首先使用第三方jar文件动态生成这个word文档并创建和输出流。所以这在 OS 磁盘缓存中不可用。在这种情况下不起作用,但在其他情况下可能。我想我将不得不尝试凯西的选项。将输出流转换为字节数组,然后存储字节数组。如果以上不正确,请告诉我。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    • 2014-05-09
    • 2015-08-08
    相关资源
    最近更新 更多