键->值数据都有哪些好的、快速的持久存储选项? [关闭]
Posted
技术标签:
【中文标题】键->值数据都有哪些好的、快速的持久存储选项? [关闭]【英文标题】:What are some good, fast persistent storage options for key->value data? [closed]键->值数据有哪些好的、快速的持久存储选项? [关闭] 【发布时间】:2011-04-27 16:57:34 【问题描述】:对于我正在编写的一个小型 php 应用程序,我们需要存储大量具有哈希键的记录和一些简单的字段值('host'、'path')。例如:
'4420ffb32a' => array(
'host' => '127.0.0.1',
'path' => 'path/to/resource',
);
这样的数据最好的持久存储是什么? mysql 会是最好的选择,还是对于如此简单的数据来说太过分了?什么会提供最佳性能?
【问题讨论】:
【参考方案1】:简答: Membase。
长答案: 您基本上有三个选择:关系数据库、文件存储或其他。
就像您说的那样,关系数据库肯定是矫枉过正。也就是说,如果这是一个已经有 MySQL 或其他数据库的应用程序的一部分,我会同意的。同样,文件存储有时很方便(例如写入一堆 XML 文件),但磁盘 I/O 可能很慢。
现在在 other 类别中,您有一些很棒的 NoSQL 选项,例如 CouchDB 或 Memcached。
如果您不太担心数据的持久性,我建议您使用 memcache。它轻巧,易于运行,并且有一个Memcache PHP extension 可以轻松使用它。它是为这样的键值存储而设计的。
memcache 的一个缺点是,一旦 memcache 服务停止,所有数据都会丢失。这就是Membase 的用武之地。它是memcache 的一个开源分支,与协议兼容,这意味着它可以与所有现有的客户端库一起使用。但是,它可以持久化您的数据,并且实际上提供了一致性和可靠性,这是 memcache 本身无法做到的。
注意:这个答案是时代的遗物,问题本身也是如此。请不要按字面意思理解。
【讨论】:
感谢长答案。我现在正在审查 membase。 或将 MySQL 与 Memcached 一起使用:dev.mysql.com/tech-resources/articles/…【参考方案2】:奇怪到现在还没有人提到Flintstone。
Doctrine 也是一个不错的选择。
【讨论】:
问题是关于 1 个确切的存储,而不是使用多个存储的 ORM @Basil Musa,非常感谢! Flintstone实际上是我要找的!一个简单的基于文件的存储 =) 序列化【参考方案3】:我会选择 MySQl,以防您将来需要升级您的应用程序。在应用方面,最好是面向未来。
【讨论】:
【参考方案4】:在已经提到的基础上再补充一点,PHP 原生支持
MongoDB, Tokyo_Tyrant 和 Berkeley DB对于后者,有一个nice article by Johannes Schlüter。
【讨论】:
【参考方案5】:只是为了建议一些不同的东西,redis(或redisdb-win32,如果你在 Windows 服务器上)
【讨论】:
有趣的建议——我以前没看过redis...【参考方案6】:可能不是最佳答案。但我会将其存储到 mySQL 数据库中,如果没有同时提取数据,我可能会使用 mysql_pconnect
。
关于 pconnect 的信息在这里:php.net
数据库的常见替代方案是纯文件,但如果我错了请纠正我,但并发文件访问可能会更慢。
祝你好运。
【讨论】:
【参考方案7】:CouchDB 是您的答案(尽管对于您的必需品可能有点矫枉过正)..
【讨论】:
以上是关于键->值数据都有哪些好的、快速的持久存储选项? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Flutter 时我都有哪些存储数据的选项? (iOS和Android)[关闭]
使用 React Native 时我都有哪些存储数据的选项? (iOS和Android)[关闭]