Я знаю, что это было некоторое время, так как вы спросили ваш вопрос, но так как я получил здесь от Google сам, я постараюсь ответить на него в любом случае;)
Как вы уже используете RewriteMap делать Lookups используя txt-файл, вы можете легко переключиться на файл dbm. DBM на самом деле является форматом базы данных, который использует индекс, обеспечивая гораздо лучшую производительность при поиске ключей.
Вам просто нужно сделать 2 простых вещи:
преобразовать ваш текстовый файл в DBM, используя команду httxt2dbm, которая поставляется с Apache:
httxt2dbm -in file.txt -out file.dbm
изменения вашей директивы RewriteMap, чтобы использовать dbm file
RewriteMap mapname txt:/path/to/file.txt
будет
RewriteMap mapname dbm:/path/to/file.dbm
только думать, чтобы иметь в виду, что всякий раз, когда вы изменяете файл .txt, вам нужно будет выполнить команду httxt2dbm снова обновить файл .dbm.
Удивительный! Спасибо за вклад Том. Карта перезаписи хорошо работает с 3000 ключами. Попробуем решение DBM в prod. – 366x24x7
Apache только считывает текстовый файл при запуске или когда он изменяется. Затем он сохраняет всю карту в памяти. На 3000 предметов, я сомневаюсь, что вы увидите большую разницу в производительности. Но для миллинов ключей, имеет смысл использовать dbm. –