2015-04-19 2 views
1

Каковы способы повышения эффективности перенаправления URL-адресов с помощью переписывающих карт.Улучшения производительности с использованием RewriteMaps-текстового файла

В настоящее время я использую rewrite Map, используя ключи поиска в текстовом файле. В текстовом файле есть 2000 ключей, и ожидается, что в ближайшие месяцы число увеличится на 100%.

Текстовый файл в отсортированном порядке, и все URL перенаправления 301.

Спасибо.

ответ

1

Я знаю, что это было некоторое время, так как вы спросили ваш вопрос, но так как я получил здесь от Google сам, я постараюсь ответить на него в любом случае;)

Как вы уже используете RewriteMap делать Lookups используя txt-файл, вы можете легко переключиться на файл dbm. DBM на самом деле является форматом базы данных, который использует индекс, обеспечивая гораздо лучшую производительность при поиске ключей.

Вам просто нужно сделать 2 простых вещи:

  1. преобразовать ваш текстовый файл в DBM, используя команду httxt2dbm, которая поставляется с Apache:

    httxt2dbm -in file.txt -out file.dbm 
    
  2. изменения вашей директивы RewriteMap, чтобы использовать dbm file

    RewriteMap mapname txt:/path/to/file.txt 
    

    будет

    RewriteMap mapname dbm:/path/to/file.dbm 
    

только думать, чтобы иметь в виду, что всякий раз, когда вы изменяете файл .txt, вам нужно будет выполнить команду httxt2dbm снова обновить файл .dbm.

+0

Удивительный! Спасибо за вклад Том. Карта перезаписи хорошо работает с 3000 ключами. Попробуем решение DBM в prod. – 366x24x7

+0

Apache только считывает текстовый файл при запуске или когда он изменяется. Затем он сохраняет всю карту в памяти. На 3000 предметов, я сомневаюсь, что вы увидите большую разницу в производительности. Но для миллинов ключей, имеет смысл использовать dbm. –