当前位置:  开发笔记 > 编程语言 > 正文

是否有像sqlite一样的任何nosql平面文件数据库?

如何解决《是否有像sqlite一样的任何nosql平面文件数据库?》经验,为你挑选了2个好方法。

简短问题:是否有任何nosql平面文件数据库可用作sqlite?

说明:可以在不同的进程中打开平面文件数据库进行读取,并保持一个进程写入.如果不需要严格的一致性,我认为它非常适合读缓存.说1-2秒写入文件甚至内存块,读者在此之后获得更新数据.

所以我几乎选择使用sqlite,因为我的python服务器读取缓存.但仍有一个问题.我不喜欢在另一个地方再次重写sqls并在sqlite中构建我的数据表的另一个副本,就像我在PostgreSql中用作后端数据库一样.

还有其他选择吗?谢谢!



1> knutin..:

也许shelve?它基本上是一个键值存储,您可以在其中存储python对象.http://docs.python.org/library/shelve.html

或者你可以只使用文件系统?


请注意,对于并发读/写,`shelve`不是sqlite的可行替代方法.来自python docs:"搁置模块不支持对搁置对象的并发读/写访问.(多个同时读取访问是安全的.)当程序打开一个架子进行写入时,没有其他程序可以打开它进行读取或Unix文件锁定可用于解决这个问题,但这在Unix版本中有所不同,需要了解所使用的数据库实现." 另一方面,sqlite在所有支持的操作系统上都符合ACID,并且锁定适用于您.

2> Nicholas Kni..:

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


非常感谢你的推荐!但在我看到他们对mysql做了什么之后,我将离开oracle.但我真的认为bsdb与sqlite相比.如果他们没有卖掉它,我一定会顺其自然.感谢您提供的信息.这很有价值.
推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有