我正在使用MaxMind的GeoIP2来获取IP地址的地理信息。在我的Java web应用程序中,
DatabaseReader reader = new DatabaseReader.Builder(new File("C:GeoLite2-City.mmdb").withCache(new CHMCache()).build();
我希望将整个文件加载到内存中,以便高效/快速读取。
上面显示的方法是使用mmdb数据库的最有效/最快速的方法吗?
粘贴的代码将内存映射文件并使用数据缓存。它应该是高效的,但不会将整个数据库加载到内存中。如果你想这样做,你需要使用fileMode
构建器选项加载数据库,例如:
DatabaseReader reader = new DatabaseReader
.Builder(new File("C:GeoLite2-City.mmdb")
.fileMode(com.maxmind.db.Reader.FileMode.MEMORY)
.withCache(new CHMCache())
.build();
但是,在大多数情况下,您可能不会看到此文件与内存映射文件之间的性能差异。