Вопрос

Кто-нибудь знает о каких-либо решениях для хранения данных размером более 1 МБ в memcached?

Нет ничего страшного в том, чтобы разрезать большие данные на фрагменты по 1 МБ перед настройкой и объединить эти фрагменты после получения из memcached.И этот алгоритм может работать прозрачно для пользователей.

Это может работать на основе этого фрагмента http://www.djangosnippets.org/snippets/488/

Это было полезно?

Решение

Вы можете попросить memcached увеличить потолок, но зачастую это признак того, что вы делаете что-то не так.

Большую часть времени, когда мы копаемся в том, что люди пытаются сделать с более крупными объектами, они загоняют себя в угол и начинают задавать вопросы типа: «Хорошо, а как я могу просто попросить часть этого объекта?"

Иногда возникает законная потребность в более крупных объектах (поэтому мы это поддерживаем).

Другие советы

Вы проверили, помогает ли сжатие карты сайта?Для меня это уменьшило размер файлов Sitemap до 200 КБ, и теперь они идеально вписываются в memcached.А у ботов карты сайта сегодня нет проблем с gzip.

У меня была аналогичная проблема с кэшированием длинных списков с результатами QuerySet.MyModel.object.defer('huge_data_field1','huge_data_field2') помог исключить огромный объем данных из результатов и решил для меня проблему.Надеюсь, поможет и кому-то еще.

Вы можете настроить задание cron, которое получает карту сайта (сгенерированную структурой карты сайта Django) и сохраняет ее в файл.Затем отправьте этот файл в качестве статического носителя (через nginx или apache, а не через django, конечно...)

curl -o /path-to-static-media/sitemap.xml http://yoursite.com/view-that-generates-sitemap/sitemap.xml
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top