标签: dbm

BerkeleyDB的替代品?

我正在寻找一个类似dbm的库,我可以使用它代替Berkeley DB,我目前正在使用它.我转换的主要原因是BDB的许可费用相当高(开源应用程序免费,但我的雇主不希望出于各种原因开源这个特定的应用程序).

我简要地看了一下qdbm,但看起来它不会满足我的需求 - 很多键(几百万)和大数据项(> 1-5兆字节).在我继续搜索之前,我想我会问,因为似乎有大量类似dbm的库.

berkeley-db dbm

38
推荐指数
4
解决办法
2万
查看次数

Java的轻量级B树库?

任何人都可以为Java推荐一个轻量级,快速且有希望稳定的B树(或类似)库吗?

基本上我正在寻找磁盘上的地图; BerkeleyDB JE除了我不需要事务之外,对于只读并发很好,需要大约1/10大小(BSD或Apache许可证也很好).

需要纯Java,所以没有东京/京都机柜.

实现相关Collections接口将是一个加号(或者,原始类型的模板化接口也会很好).

JDBM看起来相当不错,但它似乎在2005年被放弃了(1.0,不低于).

还有DiskBackedMap,但他们一年前发布了一个alpha版本,此后一无所获.

还有别的吗?或者上述任何经历?

想要的东西:

  • 进程间关系数据库(所以没有H2,Derby,SQLite等)
  • 分布式键值存储(没有Redis,Memcachedb,Cassandra,Voldemort,Dumbledore等)

java persistence b-tree map dbm

15
推荐指数
1
解决办法
5299
查看次数

Perl DBM实现的优缺点?(GDBM,Berkeley DB等)

我已经将GDBM和Berkeley DB/DB_File用于早期的Perl项目,但是我应该将它们用于新项目吗?不同Perl DBM实现的优缺点是什么?

(相关:与传统的DBM相比,像DBM :: Deep或KyotoCabinet这样的工具是否太慢/太重,当你需要的只是二进制/文本数据的透明哈希?)

perl dbm

10
推荐指数
1
解决办法
1881
查看次数

适用于 Windows 的 Python DBM 模块?

我想在我的 Windows 机器上使用 dbm 模块,但它目前仅在 Unix 上受支持。http://docs.python.org/library/dbm.html

有谁知道具有类似语法的类似模块或在 Windows 上获得 dmb 功能的解决方法?能够访问写入硬盘驱动器的数据库,就像我编写代码以访问字典一样会很棒。感谢您的帮助!

python database module dbm

8
推荐指数
1
解决办法
4887
查看次数

如何有效地清空Perl DBM文件?

我继承了一段带有代码片段的代码,该代码段清空数据库,如下所示:

dbmopen (%db,"file.db",0666);
foreach $key (keys %db) {
  delete $db{$key};
}
dbmclose (%db);
Run Code Online (Sandbox Code Playgroud)

这通常是可以的,但有时数据库在调用此清理代码之前会变得非常大,并且通常在用户想要执行重要操作时.

有没有更好的方法呢?

perl dbm

7
推荐指数
3
解决办法
997
查看次数

GDBM不适用于Python 3.6和anaconda

我在anaconda环境中使用Python 3.6.我安装了GDBM

conda install gdbm
Run Code Online (Sandbox Code Playgroud)

安装顺利,但我不能使用dbm.gnuPython:

ModuleNotFoundError: No module named '_gdbm'
Run Code Online (Sandbox Code Playgroud)

_gdbm即使实际安装了GDBM,它也不会包含Python 模块.

这是一个已知的问题吗?我该如何解决?

谢谢!

python dbm gdbm python-3.x anaconda

7
推荐指数
1
解决办法
2696
查看次数

错误:db 类型为 dbm.gnu,但该模块在 windows 中不可用

我在 Windows 机器上安装了 python3.6。打开 my.db 文件时出现以下错误。

my.db 文件由我的程序在 python3.6 的 ubuntu16.04 中创建,使用搁置模块。

In [1]: import shelve

In [2]: db = shelve.open("etc/my.db")
---------------------------------------------------------------------------
error                                    Traceback (most recent call last)
<ipython-input-2-b4828c8ee6e1> in <module>()
----> 1 db = shelve.open("etc/my.db")

c:\Python36\Lib\shelve.py in open(filename, flag, protocol, writeback)
    241     """
    242
--> 243     return DbfilenameShelf(filename, flag, protocol, writeback)

c:\Python36\Lib\shelve.py in __init__(self, filename, flag, protocol, writeback)
    225     def __init__(self, filename, flag='c', protocol=None, writeback=False):
    226         import dbm
--> 227         Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
    228
    229

c:\Python36\Lib\dbm\__init__.py in …
Run Code Online (Sandbox Code Playgroud)

shelve dbm python-3.6

7
推荐指数
1
解决办法
2262
查看次数

python中的搁置模块无法正常工作:"db type无法确定"

我试图在Python中创建一个简单的密码存储程序,它看起来很简单,所以我想知道我是否使用搁置错误.

我有主.py文件:

import shelve

passwords = shelve.open('./passwords_dict.py')

choice = raw_input("Add password (a) or choose site (c)?")

if choice[0] == 'a':
    site_key = raw_input("Add for which site? ").lower()
    userpass = raw_input("Add any info such as username, email, or passwords: ")

    passwords[site_key] = userpass

else:
    site = raw_input("Which site? ").lower()
    if site in passwords:
        print "Info for " + site + ": " + passwords[site]
    else:
        print site, "doesn't seem to exist!"

print "Done!"

passwords.close()
Run Code Online (Sandbox Code Playgroud)

而另一个文件passwords_dict.py只是一个空字典.

但是当我尝试运行该程序时,我收到此错误:

Traceback (most recent call last): …
Run Code Online (Sandbox Code Playgroud)

python shelve dbm persistent-storage python-2.7

6
推荐指数
1
解决办法
5589
查看次数

任何DBM for .NET?

我正在寻找一个简单的DBM库,如BerkeleyDB或Kyoto Cabinet,但本身就是为.NET工作.我需要管理超过一百万条记录(可能是一千万条),并且可能采用分层方式(最后一点不是强制性的,我们可以使用线性结构).

这样的事情甚至存在吗?

.net berkeley-db dbm kyotocabinet

5
推荐指数
1
解决办法
1216
查看次数

搁置库对python中对象的限制

我一直在以这种方式搁置存储大量对象:

以字符串为键,列表为值的字典:

data["MITL"] = ["Radio And Television Broadcasting And Communications Equipment", "Communication Equipment"]
Run Code Online (Sandbox Code Playgroud)

或更简洁地:

...
SIXH.L         Machine Tools & Accessories, 
GOPAIST.BO     Steel & Iron, 
HERITGFOO.NS   Food Wholesale, 
MITL           Radio And Television Broadcasting And Communications Equipment, Communication Equipment, 
MMLP           Oil Refining, Marketing, Oil & Gas Pipelines, 
SESL.PA        Diversified Electronics, 
...
<? 30,000 entries>
Run Code Online (Sandbox Code Playgroud)

我从此.db文件中提取并导出到另一个.db文件,因此,行业是关键,列表由股票代号组成。

...
Industrial Electrical Equipment ['PLPC', 'MAG', 'LPTH', 'IIN', 'CUI', 'ULBI', 'APWC', 'CAPC', 'SVT', 'ARTX', 'CPST', 'OSIS', 'LGL', 'BW', 'HPJ', 'AOS', 'FLUX', 'AMSC', 'GTI', 'RTBC', 'AUSI', 'AETI', …
Run Code Online (Sandbox Code Playgroud)

python shelve dbm python-3.x

5
推荐指数
0
解决办法
352
查看次数