简短问题:是否有任何nosql平面文件数据库可用作sqlite?
说明:可以在不同的进程中打开平面文件数据库进行读取,并保持一个进程写入.如果不需要严格的一致性,我认为它非常适合读缓存.说1-2秒写入文件甚至内存块,读者在此之后获得更新数据.
所以我几乎选择使用sqlite,因为我的python服务器读取缓存.但仍有一个问题.我不喜欢在另一个地方再次重写sqls并在sqlite中构建我的数据表的另一个副本,就像我在PostgreSql中用作后端数据库一样.
还有其他选择吗?谢谢!
也许shelve
?它基本上是一个键值存储,您可以在其中存储python对象.http://docs.python.org/library/shelve.html
或者你可以只使用文件系统?
BerkeleyDB是一个广泛使用的嵌入式数据库,它一直存在(它最初来自BSD中包含的数据库库,因此得名),并且对于许多用例具有出色的性能特征(并且缓存是经常使用的),但它确实有一些重大的局限性.
如果你想在Python中使用它,你可能需要外部维护的pybsddb/bsddb3
库,而不是Python 2.x中包含的弃用bsddb
库(不再是3.x).
它目前由Oracle拥有,但可以在开源许可下使用.请仔细注意许可条款 - 当前版本是GPLish(与GPL兼容),因此请确保与您计划的内容兼容.
更多信息:
http://en.wikipedia.org/wiki/BerkeleyDB
http://en.wikipedia.org/wiki/Sleepycat_License
http://www.oracle.com/us/products/database/berkeley-db/index.html