2016-04-09 4 views
1

Я использую GeoIP2 от MaxMind для получения геоинформации для IP-адреса. В моем веб-приложении Java,MaxMind: загрузка GeoIP2 mmdb в память для быстрого чтения

DatabaseReader reader = new DatabaseReader.Builder(new File("C:\GeoLite2-City.mmdb").withCache(new CHMCache()).build(); 

Я надеюсь загрузить весь файл в память для эффективного/быстрого чтения.

Как показано выше, наиболее эффективный/быстрый способ использования базы данных mmdb?

ответ

2

Код, который вы вставили, будет отображать карту памяти и использовать кеш данных. Он должен быть эффективным, но он не будет загружать всю базу данных в память. Если вы хотите, чтобы сделать это, вам нужно будет загрузить базу данных с помощью fileMode опции строителя, например:

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

Однако, в большинстве случаев, вы, вероятно, не увидеть разницу в производительности между этим и отображенной в памяти файл.

+0

Спасибо за информацию! – curious1

Смежные вопросы