IS> Хеш, скажем md5, можно использовать, если в mmc помещать данные
IS> с заголовками, в одном из которых будет указан полный URL для проверки.
я немного другое имел ввиду, что при запросе в mmc nginx url преобразовывал бы
в md5 к чтобы не слать ключи большие т.е примерно так:
location /mmc {
memcached_pass 168.1.1.1:11211;
memcached_key_prefix prefix1;
memcached_key_hash md5|crc32|sha1|off;
error_page /backend;
}
тогда например при memcached_key_hash md5; на урл
/mmc/get_data.php?foo=bar&bar=baz
пойдет такой запрос на memcached
get('prefix1:60b38c3aef1c80d763d6a34ec13ce456');
да prefix как тут уже сказали может быть весьма полезен.
Именно это я имел ввиду. Один из заголовков из mmc будет
X-Key: /mmc/get_data.php?foo=bar&bar=baz
для того, чтобы убедиться, что по хэшу мы вытащили нужный URL.
Для md5 и sha1 это не особо актуально, а вот для crc32 - вполне.
несколько соображений про то как можно храниться сами данные в memcached.
Если там хранить картинки, то понятно gzip им не нужен, если же html/text то
gzip вполне бы пригодился. Тогда как
разделять пакованные и не пакованные данные (ведь nginx их должен будет
распаковывать): по настройкам в location,
по самим данным (memcached flags). как разделять в этом случае header/body (все
ли паковать, или только body).
всегда ли нужны там заголовки. скажем те же flags можно использовать чтобы
сказать nginx есть ли headers в данных,
тогда надо иметь возможность задавать заголовки руками.
Заголовки должны быть не пакованными. А flags, да, можно использовать
для определения наличия заголовков.
Игорь Сысоев
http://sysoev.ru