有没有一种简单的方法来获得文件支持的地图?
地图的内容会定期更新,有些会被删除,有些会被添加。为了保证地图中的数据安全,需要持久性。我知道数据库是理想的,但遗憾的是由于限制,无法使用数据库。
我努力了:
每次更新时将地图的全部内容写入文件。这行得通,但显然有一个缺点,即每次都重写整个文件,映射的内容预计从几个条目到 ~2000 不等。还有一些并发问题(即乱写导致数据丢失)。
使用RandomAccessFile并保留指向每个文件起始字节的指针,以便可以使用 seek() 查找每个条目。同样,这与以前有类似的问题,更改条目将涉及更新其之后的所有引用。
理想情况下,该解决方案将涉及某种缓存,以便仅将最近访问的条目保留在内存中。
有这样的事吗?还是可以通过第三方 jar 获得?有人建议使用 Oracle Coherence,但我似乎找不到太多关于如何实现它的信息,这似乎有点像用大锤敲碎坚果。