Каков наилучший способ кэширования двоичных данных? - PullRequest
2 голосов
/ 23 июля 2010

Я предварительно генерирую более 20 миллионов сжатых html-страниц, сохраняю их на диске и обслуживаю с помощью веб-сервера. Теперь мне нужно, чтобы эти данные были доступны для нескольких веб-серверов. Повторная синхронизация файлов занимает слишком много времени. NFS кажется, что это может занять слишком много времени.

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

В настоящее время я думаю об использовании простой таблицы MySQL / Postgres со строковым ключом и двоичным значением. Прежде чем приступить к реализации этого решения, я хотел узнать, есть ли у кого-нибудь еще опыт в этой области и может ли он дать совет.

Ответы [ 2 ]

2 голосов
/ 23 июля 2010

У меня хорошее настроение по поводу Redis, вот оно.

Я также слышал очень положительные отзывы о memcached .Он также подходит для двоичных данных.
Возьмем, к примеру, Facebook: эти ребята используют memcached, также для изображений!
Как вы знаете, изображения в двоичном формате.Получите машину для ее использования, связыватель для PHP или все, что вы используете для своих сайтов, и все готово!Удачи!

1 голос
/ 23 июля 2010

Во-первых, зачем кешировать gzips? Задержка в сети и время передачи на порядки превышают время, затрачиваемое ЦП на сжатие файла, поэтому сделать это на лету, возможно, самое простое решение.

Однако, если у вас определенно есть потребность, я не уверен, что центральная база данных будет быстрее, чем общий файловый ресурс (конечно, вы должны измерять, не угадывая эти вещи!). Простой подход может заключаться в том, чтобы разместить исходные файлы в общей папке NFS и позволить каждому веб-серверу архивировать и кэшировать их локально по требованию. memcached (как предполагает Poni) также является хорошей альтернативой, но добавляет уровень сложности.

...