问题标签 [dbm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1033 浏览

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

我继承了一段代码,其中包含一个清空数据库的代码片段,如下所示:

这通常没问题,但有时在调用此清理代码之前数据库会变得非常大,并且通常是在用户想要做一些重要的事情时。

有没有更好的方法来做到这一点?

0 投票
9 回答
25450 浏览

berkeley-db - BerkeleyDB 的替代品?

我正在寻找一个类似 dbm 的库,可以用来代替我目前正在使用的 Berkeley DB。我切换的主要原因是 BDB 的许可费用非常高(开源应用程序免费,但我的雇主出于各种原因不想开源这个特定的应用程序)。

我已经简要地查看了 qdbm,但它看起来并不能满足我的需求——很多键(数百万)和大数据项(> 1-5 兆字节)。在我继续搜索之前,我想我会问,因为那里似乎有很多类似 dbm 的库。

0 投票
2 回答
496 浏览

perl - 如何在 DBM 数据库中存储时间戳?

我正在实施简单的文件共享服务。目前我使用基于文件的数据库(因为它适合我的需要)。

如您所见,我建议将上传时间戳存储为字符串,因为目前我只需要显示它(假设使用 localtime() 来获取人类可读格式的时间戳)。但这在我看来有些糟糕。如果稍后我想显示某个时期的上传内容,等等。

在不使用第三方 CPAN 模块的情况下,在 DBM 数据库中存储时间戳的常用方法是什么?我以后如何将它们拉出来并显示给用户(在我的情况下,转换回字符串)?

0 投票
3 回答
721 浏览

database - DBM 数据库的理想字符串长度?

当使用 DBM 数据库(例如 Berkeley 或 GDBM)时,使用更少的长字符串或更多的短字符串存储数据更好吗?无论哪种方式,我都可以轻松地构建我的数据。我正在寻找性能意义上的“更好”,但我也对其他含义感兴趣。

0 投票
2 回答
832 浏览

php - PHP 5.x 中的 DBM 或 SQLite

我们有一个客户,其网站托管在不提供数据库功能的服务器上(我不想透露托管公司名称)。

我们已经开发了一个非常简单的基于 CMS 的站点,但最终实现使用 MySQL。

我在某处读到 PHP 中内置了类似 DB 的功能。我从来没有使用过它们。

这些是什么以及它们的可靠性如何?

使用 DBM 功能或使用 SQLite 功能更可取的是什么?

对于 SQLite,我们是否必须对 php.ini 文件进行任何更改?如果,那么这对我们来说是无用的,因为托管服务提供商不允许我们访问 php.ini 文件。

TIA

0 投票
1 回答
570 浏览

python-3.x - dbm.error:db 类型为 dbm.bsd,但模块不可用(Python 3.0)

我正在尝试打开我在 2.5 中创建的搁置文件,但我收到了问题标题中列出的错误。

数据不是必需的,但我真的想要它们。

查看该lib\dbm\__init__.py文件,它识别出 4 种类型的 dbm 模块,但仅在我的系统上找到 dbm.dumb。

有谁知道我怎么能打开这个?
有没有类似dumb.py 文件的bsd.py 文件?
我必须安装 2.5 才能使用它吗?

另外,当我创建这个文件时,我可能已经在我的旧安装上安装了 Panda。
是 Panda 标准自带的 Python 安装还是这个文件自带的?

谢谢!

0 投票
3 回答
1127 浏览

database - 将 perl 脚本/dbm 移动到新服务器,并移出 dbm?

我的任务是将站点镜像到新服务器上。旧网站有一些 Perl 脚本,据我在内部看到的(我对 Perl 一无所知,尽管我对编码有很好的理解,特别是 PHP/js/等)并不依赖于旧的服务器。也就是说,当我尝试运行此脚本时,该脚本会通过数据库文件查找适当的文章文件,但它不会检索任何内容。

基本上,这是一个基本的旧 CMS,正如我解释的那样,它在 PAG 文件中搜索文件名并显示它。我有点迷失在这里。镜像在新站点上不起作用是有原因的吗?我检查了权限,检查了 Perl 是否安装在相同的/usr/etc目录中。我认为它使用 dbm 因为,根据另一篇文章,如果我看到这样的命令:

应该是dbm吧?

在相关说明中,是否有任何方法可以将该 PAG 文件的信息与原始文件合并,而无需极其复杂的 Perl 脚本;即,在文件本身中使用该信息重新创建 100 个文本文件,而不是单独存储?

编辑:感谢下面的第一个答案。你能解释一下 HASH 可能是什么,以及掩码吗?我已经仔细检查了 .pag 文件(数据库名称)确实位于之前在 .pl 文件中定义的位置,并且它是以二进制形式传输的。但不知何故我无法让它正确打开它!

编辑 3:好的,对不起,最后编辑在这里:我使用了下面的模具代码(Shwern),发现它没有找到那个数据库文件,尽管它在正确的目录中(两个文件articles.pag和articles.dir,但变量只引用没有扩展名的“文章”)并且拥有正确的权限......所以,现在的问题是到底发生了什么?这些是perl的不同版本吗?还是我只是在做一些基本而愚蠢的事情?郑重声明(是的,这很糟糕)我还没有 shell 访问权限,虽然我正在努力……我被要求这样做是因为我的“新网络”技能,我当然不合适perl 和 dbm 之类的人,虽然我可以阅读文件并理解它们。作为最后的建议,有谁知道如何(脚本等)我可以要求原始服务器人员(不是编码人员)对此进行 ASCII 转储,还是会不合时宜?我需要将它转换为 CSV 并返回到文件中,这样我就可以在另一个数据库中重用它……呃,真是一场噩梦!

0 投票
1 回答
219 浏览

ruby - Ruby 上的 Berkeley DB 中的键和值必须是字符串,而不是 int、float 或任何其他类型吗?

似乎如果我在 Ruby 上使用 Berkeley DB (DBM),哈希的键和值必须是字符串?它们可以是其他数据类型吗?

结果:

0 投票
1 回答
277 浏览

ruby - 为什么在 Ruby 中使用 DBM 时,db[1] = 2 没问题,但 print db[1] 会报错?

在 Ruby 上,使用 DBM 时

有人知道 db[1] = 2 没问题,但是打印出 db[1] 会出错吗?

如果它要求 db["1"] 有效,那么它为什么不适用于两种情况而仅适用于一种情况?

0 投票
4 回答
791 浏览

perl - 如何访问 Perl DBM 哈希中的随机元素?

我有一个 Perl DBM 哈希,其中包含我想随机选择的 URL 列表,以对爬虫站点进行负载平衡。结果我想随机选择一个键,或者选择第 n 个元素(所以我可以随机化 n)。

我知道这违背了哈希的概念,但这可能吗?

注意:错过了一个有价值的点,即散列大小将太大而无法加载所有密钥以随机选择。