Постоянное хранение в памяти в Python - PullRequest
3 голосов
/ 05 августа 2011

Я надеюсь написать пользовательскую модель данных для моего веб-приложения, которая существует в памяти как набор пользовательских объектов Python.Веб-приложение может манипулировать данными об этих объектах и ​​запускать их методы по запросам пользователей, и после того, как поток запросов умирает, объекты сохраняются в памяти.

У объектов модели будут методы для записи себя на диск (не знаю, какЯ сделаю это еще, но это не то, что меня интересует здесь), но только для целей резервного копирования.В идеале они будут сохраняться в памяти до тех пор, пока работает сервер.

Доступ к модели должен управляться сессией в случае, если несколько пользователей одновременно манипулируют данными об объектах, хотя это происходит относительно редко.

Невозможно инициализировать объекты с помощью веб-приложения, поскольку они должны сохраняться даже при перезагрузке веб-приложения.

Существуют ли какие-либо сторонние компоненты, которые могли бы создаватьпроще настроить такую ​​модель?Любой совет идти по этому пути?Буду признателен за любую помощь, так как у меня нет большого опыта в программировании независимых процессов для взаимодействия на Python или иным образом.

Мой сервер будет Linux, и я планирую использовать Pyramid в качестве основы для Интернетаприложение.

Заранее спасибо, Уилл

1 Ответ

2 голосов
/ 05 августа 2011

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

Если вы хотите выполнить сериализацию объектов Python и в зависимости от сложности ваших моделей, вы можете попробовать Redis .

Redis - это нереляционная база данных, основанная на модели ключ-значение. Все ваши данные хранятся в памяти и периодически (частота зависит от количества операций записи и настраивается) выгружаются на диск. Это также довольно легко подобрать и использовать.

Существует оболочка для redis, доступная для python: redis_py .

Конечно, Redis не единственный в своем роде, и вы также можете посмотреть на подобные альтернативы, такие как Токийский Тиран.

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