因此,我研究了Python中使用的各种key:value (其中value要么是严格意义上的单个值,要么可能是对象)存储,并发现了一些很有前途的存储。到目前为止我还没有具体的要求,因为我还处于评估阶段。我正在寻找什么是好的,什么是坏的,这些东西处理得好或不好的情况是什么,等等。我相信你们中的一些人已经尝试过了,所以我很想听听你们在不同方面的发现/问题/等等:使用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/,用Python编写
http://pypi.python.org/pypi/txredis/0.1.1 - http://redis.io/ python客户端: Redis
MemcacheDB - http://memcachedb.org/
所以我开始了基准测试(简单地插入和读取它们),使用一个简单的计数来生成数字键和"A short string of text“的值:
memcached: python 5.3/ CentOS -2.4.3-24.el5_3.6,libevent1.4.12-稳定,memcached 1.4.2默认设置,1G内存,每秒14,000次插入,16,000秒读取。没有真正的优化,很好。
memcachedb声称每秒插入17,000到23,000次,每秒读取44,000到64,000次。
我也想知道其他人在速度方面的表现如何。
发布于 2009-10-24 23:39:07
这很大程度上取决于您的需求。
阅读Caveats of Evaluating Databases以了解如何评估它们。
发布于 2009-10-25 01:40:52
shelve (将dictonaris存储在文件/标准python模块中)
ZODB - persisatnce对象数据库(python对象数据库,无SQL)
更多持久工具:http://wiki.python.org/moin/PersistenceTools
发布于 2009-10-25 15:02:57
我的5分:
您是否需要具有or大小数据或海量写入性能的分布式系统?
那么,你需要一个重要的键:value/BigTable/Dynamo类型的东西。你需要确保客户端库支持分片,这样你就可以有多个数据库可以写了。在这里使用哪种方法只能由您使用与您认为需要的数据进行测试后才能决定。
您是否需要从Python以外的其他系统/语言访问数据?
由于这些数据库的数据根本没有结构,如果它可以从其他语言/客户端访问,那么您的数据库将取决于您在其中存储的内容。但是如果你需要这个CouchDB是一个很好的选择,因为它将它的数据存储在JSON文档中,所以你可以获得互操作性。然而,对于真正的海量数据和分片,CouchDB有多好还不清楚。
除了Python或分布式多服务器存储之外,您是否不需要与其他语言进行互操作?
使用ZODB。
https://stackoverflow.com/questions/1617309
复制相似问题