2016-04-09 6 views
1

Ich benutze MaxMind GeoIP2, um die Geo-Informationen für eine IP-Adresse zu erhalten. In meiner Java-Webanwendung, dieMaxMind: Laden GeoIP2 mmdb in den Speicher für schnelles Lesen

Ich hoffe, die gesamte Datei für effizientes/schnelles Lesen in den Speicher zu laden.

Ist der oben gezeigte Weg der effizienteste/schnellste Weg zur Verwendung der mmdb-Datenbank?

Antwort

2

Der eingefügte Code speichert die Datei im Speicher und verwendet den Datencache. Es sollte effizient sein, aber es wird nicht die gesamte Datenbank in den Speicher geladen. Wenn Sie das tun wollen, müssten Sie die Datenbank mit dem fileMode Builder Option, zum Beispiel laden:

DatabaseReader reader = new DatabaseReader 
    .Builder(new File("C:\GeoLite2-City.mmdb") 
    .fileMode(com.maxmind.db.Reader.FileMode.MEMORY) 
    .withCache(new CHMCache()) 
    .build(); 

Doch in den meisten Fällen werden Sie wahrscheinlich keinen Unterschied in der Leistung zwischen diesen sehen und die Memory-Mapped Datei.

+0

Danke für Ihre Infos! – curious1

Verwandte Themen