Какой ключ: хранить значение для использования с Python?

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

memcached – http://www.danga.com/memcached/ клиенты python: http://pypi.python.org/pypi/python-memcached/1.40 http://www.tummy.com/Community/software/python- Memcached /

CouchDB – http://couchdb.apache.org/ клиенты python: http://code.google.com/p/couchdb-python/

Tokyo Tyrant – http://1978th.net/tokyotyrant/ клиенты python: http://code.google.com/p/pytyrant/

Lightcloud – http://opensource.plurk.com/LightCloud/ На основе Tokyo Tyrant, написанной на Python

Redis – http://redis.io/ клиенты python: http://pypi.python.org/pypi/txredis/0.1.1

MemcacheDB – http://memcachedb.org/

Поэтому я начал проводить бенчмаркинг (просто вставляя ключи и читая их), используя простой счетчик для создания числовых клавиш и значения «короткая строка текста»:

memcached: CentOS 5.3 / python-2.4.3-24.el5_3.6, libevent 1.4.12-stable, memcached 1.4.2 с настройками по умолчанию, 1 гигабайтная память, 14 000 вставок в секунду, 16 000 секунд для чтения. Никакой реальной оптимизации, хорошо.

memcachedb требует порядка от 17 000 до 23 000 вставок в секунду, от 44 000 до 64 000 просмотров в секунду.

Мне также интересно, как другие складывают скорость.

4 Solutions collect form web for “Какой ключ: хранить значение для использования с Python?”

Это в основном зависит от ваших потребностей.

Прочитайте Предостережения по оценке баз данных, чтобы понять, как их оценивать.

shelve (сохранение dictonaris в файле / стандартный модуль python)

ZODB – база данных persisatnce (база данных объектов python, без SQL)

Дополнительные инструменты для обеспечения устойчивости: http://wiki.python.org/moin/PersistenceTools

Мои 5 центов:

Нужны ли вам распределенные системы с размерами байтов размером tera или большой производительностью записи?

Ну, им нужен один из ключевых вещей: ценность / BigTable / Dynamo. Это будет Cassandra, Tokyo Tyrant, Redis и т. Д. Вам нужно убедиться, что клиентская библиотека поддерживает очертание, чтобы вы могли писать несколько баз данных. Какой из них можно использовать здесь, вы можете решить только после тестирования с данными, которые выглядят так, как вам кажется.

Вам нужны данные для доступа из других систем / языков, кроме Python?

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

Вам не нужна совместимость с другими языками, чем Python или распределенная многосерверная память?

Используйте ZODB.

Как насчет SimpleDB от Amazon?

Существует библиотека python с открытым исходным кодом, называемая boto для python, взаимодействующая с веб-сервисами Amazon.

Python - лучший язык программирования в мире.