java - 关于数据存储的意见

标签 java tomcat data-structures storage

我有一个即将进行的项目,其核心是存储两个整数之间的映射。 (A 列中的 1234 映射到 B 列中的 4567)。大约有 1000 个映射。每次用户点击站点上的某个 url 时,都会对映射进行查找。

将它插入我们的关系数据库似乎有点过分了。在每次命中时选择它的开销似乎很高。另一方面,将其存储为 XML 文件并在每次命中时从磁盘加载该平面文件似乎也不是最佳选择。

所以我的问题是:保存此映射的理想数据结构和方法是什么?

系统架构是tomcat + apache + mysql。该代码将在 tomcat 中运行。

编辑: 映射是静态的,我不需要更改它们。似乎 HashMap 中的 XML 文件是可行的方法。

最佳答案

我会使用属性文件或 XML 文件,在启动时将其加载到内存中(作为 HashMap<Integer, Integer> ),然后仅从 HashMap 提供服务。

如果您需要在执行时更改映射,您可以立即将其写回或可能只是增量写入更改(并更新内存中的映射),并通过一个过程来统一原始文件和启动时的更改。当然,如果您需要扩展到多台服务器,这就不是很好了 - 那时您需要弄清楚您需要什么样的一致性等。数据库可能是最简单的方法继续进行,但这取决于实际需求。

关于java - 关于数据存储的意见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194271/

相关文章:

algorithm - 范围查询的数据结构

java - 如果 boolean == false 则重新启动 while 循环

apache - Tomcat如何通过IP地址限制访问?

mysql - 如何在mysql中构建一个用于检测过期许可证的表?

java - HttpSessionListener 中的事务提交不会持久保存到数据库

maven - @WebServlet 请求的资源不可用

java - 需要帮助理解三步动态编程/递归问题

java - 在 JPanel 上绘制一个矩形

java初学者,运算符优先级表

java - 我不明白同步在我的代码中是如何工作的