Mongo - Хорошая библиотека кэширования Python / Стратегия - PullRequest
0 голосов
/ 18 октября 2011

У меня есть представление, которое возвращает список больших документов Mongo через ORM (MongoEngine). Запрос ORM к коллекции варьируется на нескольких уровнях (упорядочение, лимит, смещение, фильтры запросов и т. Д.). Однако исходные данные не обновляются регулярно.

Чтобы отобразить данные, представление преобразует документы Mongo в объекты Pythonic Dict.

Для целей кэширования, нужно ли просто вызывать встроенную функцию hash () для метода MongoEngine ORM? Другими словами:

key = hash('Document.objects.filter(user_id__gt=5)')
value = Document.objects.filter(user_id__gt=5)

Я бы тогда использовал API кеширования Django с бэкэндом memcache.

Это не похоже на многопоточность, но я не уверен, что это огромное соображение. Больше всего меня беспокоит необходимость читать / записывать в Memcache для каждого варианта запроса. Я полагаю, я мог бы ограничить это наиболее распространенными запросами.

Полагаю, самый большой вопрос в том, нужен ли Mongo кеш памяти для такого рода функций более низкого уровня.

1 Ответ

2 голосов
/ 18 октября 2011

MongoDB использует файлы, отображенные в памяти, и базовая ОС обрабатывает разбиение на страницы на / с диска вместо максимально эффективного хранения данных в памяти. Если у вас есть дополнительная оперативная память, используйте ее для MongoDB, чтобы увеличить пропускную способность и снизить сложность кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...