Ответ 1
Может быть shelve
? Это в основном хранилище ключей, где вы можете хранить объекты python. http://docs.python.org/library/shelve.html
Или, может быть, вы могли бы просто использовать файловую систему?
Короткий вопрос: Есть ли какая-либо база данных с плоским файлом nosql, доступная как sqlite?
Объяснение: База данных плоских файлов может открываться в разных процессах для чтения и сохранять один процесс для записи. Я думаю, что он идеально подходит для кеша чтения, если не требуется строгого согласования. Скажем, 1-2 секунды записывают в файл или даже блок памяти, и после этого читатели получают обновленные данные.
Итак, я почти предпочитаю использовать sqlite, так как мой кеш-клиент для чтения на python. Но есть еще одна проблема. Я не люблю переписывать sqls снова в другом месте и строить другую копию моих таблиц данных в sqlite так же, как и в PostgreSql, который использовался как база данных.
так есть ли другой выбор? спасибо!
Может быть shelve
? Это в основном хранилище ключей, где вы можете хранить объекты python. http://docs.python.org/library/shelve.html
Или, может быть, вы могли бы просто использовать файловую систему?
BerkeleyDB - широко используемая встроенная база данных, которая была навсегда (она первоначально была получена из библиотеки базы данных, включенной в BSD, отсюда и название) и имеет отличные характеристики производительности для многих случаев использования (и кеширование является часто используемым), но он имеет некоторые существенные ограничения.
Если вы хотите использовать его с Python, вам, вероятно, понадобится внешняя библиотека pybsddb/ bsddb3
, а не устаревшая библиотека bsddb
, включенная в Python 2.x(и больше не в 3.x).
В настоящее время он принадлежит Oracle, но доступен под лицензией с открытым исходным кодом. Обязательно соблюдайте условия лицензирования - текущие версии - GPLish (и GPL-совместимые), поэтому убедитесь, что они совместимы с тем, что вы планируете делать.
Дополнительная информация:
Что-то тривиальное, но работоспособное, если вы ищете резервную копию базы данных ключевых значений, используйте маринованный словарь. Используйте cPickle для повышения производительности, если это необходимо.