所以我正在查看各种键:值(其中值严格地是单个值或可能是对象)存储以供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/

东京暴君 - 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 gig内存,每秒14,000次插入,16,000秒读取。没有真正的优化,很好。

memcachedb声称每秒17,000到23,000次插入,每秒44,000到64,000次读取。

我也想知道其他人如何加快速度。

有帮助吗?

解决方案

这主要取决于你的需要。

阅读评估数据库的注意事项了解如何评估它们。

其他提示

搁置(在文件/标准python模块中存储dictonaris)

ZODB - persisatnce对象数据库(python对象数据库,没有SQL)

更多持久性工具: http://wiki.python.org/moin/PersistenceTools

我的5美分:

您是否需要具有tera字节大小数据或大量写入性能的分布式系统?

好吧,他们需要一个大键:value / BigTable / Dynamo类型的东西。这将由Cassandra,Tokyo Tyrant,Redis等完成。您需要确保客户端库支持分片,以便您可以写入多个数据库。在使用看起来像您认为需要的数据进行测试后,您在此处使用哪一个只能由您决定。

您是否需要从Python以外的其他系统/语言访问数据?

由于这些数据库根本没有数据结构,如果可以从其他语言/客户端访问,那么您的数据依赖于您存储在其中的内容。但是如果你需要这个CouchDB是一个不错的选择,因为它将数据存储为JSON文档,因此你可以获得互操作性。但是,CouchDB在真正庞大的数据和分片上的表现还不清楚。

您是否需要与Python或分布式多服务器存储之外的其他语言的互操作性?

使用ZODB。

亚马逊的SimpleDB怎么样?

有一个名为boto的开源python库,用于连接Amazon Web服务的python。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top