我有一个即将进行的项目,其核心是存储两个整数之间的映射。 (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/