gpt4 book ai didi

java - 缓存数据库中存在的图像

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

我将具有唯一 ID 的图像作为 BLOB 存储在数据库中,并通过从数据库流式传输它们在 jsp 页面中显示它们。想知道是否有一种方法可以缓存图像,这样我就不必因为从数据库流式传输而产生延迟。如果有人提供一些片段/示例以实现图像缓存,我会建议。

最佳答案

您没有说明流程的哪一部分需要帮助,但我会这样做:

首先,您必须创建一个类来保存缓存和元数据。我们称之为 ImageCache。当然,您需要一个 String 作为图像名称,并需要一个 byte[] 来保存图像内容本身。然后将它们的集合添加到当前从数据库中提取图像的类中。当收到图像请求时,在集合中搜索文件名。如果找到,只需将 byte[] 发回即可。如果它不在集合中,请从数据库中读取它,然后从中创建一个新的 ImageCache 对象并将其添加到集合中。

对于奖励积分,请包含上次访问日期字段和比较器。比较器和日期字段将让您维护缓存。假设您的缓存可以容纳 50 张图像(基于可用内存)。您的比较器可用于对 LRU (Least Recently Used) 中的 ImageCache 对象集合进行排序order,按lastAccessed升序排序。当集合达到最大条目数时,找到最旧的lastAccessed条目,并将其替换。这将为您提供最佳的缓存命中率,同时不会占用所有堆内存。

另一种选择是仅使用 Hibernate 作为程序和数据库之间的抽象层。这将提供许多好处,其中之一是高度可配置和完全自动的缓存。

关于java - 缓存数据库中存在的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5697313/

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