【问题标题】: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 会是最好的选择,还是对于如此简单的数据来说太过分了?什么会提供最佳性能?

【问题讨论】:

    标签: php mysql database document-database


    【解决方案1】:

    简答: Membase


    长答案:
    您基本上有三个选择:关系数据库、文件存储或其他。

    就像您说的那样,关系数据库肯定是矫枉过正。也就是说,如果这是一个已经有 MySQL 或其他数据库的应用程序的一部分,我会同意的。同样,文件存储有时很方便(例如写入一堆 XML 文件),但磁盘 I/O 可能很慢。

    现在在 other 类别中,您有一些很棒的 NoSQL 选项,例如 CouchDBMemcached

    如果您不太担心数据的持久性,我建议您使用 memcache。它轻巧,易于运行,并且有一个Memcache PHP extension 可以轻松使用它。它是为这样的键值存储而设计的。

    memcache 的一个缺点是,一旦 memcache 服务停止,所有数据都会丢失。这就是Membase 的用武之地。它是memcache 的一个开源分支,与协议兼容,这意味着它可以与所有现有的客户端库一起使用。但是,它可以持久化您的数据,并且实际上提供了一致性和可靠性,这是 memcache 本身无法做到的。


    注意:这个答案是时代的遗物,问题本身也是如此。请不要按字面意思理解。

    【讨论】:

    【解决方案2】:

    奇怪到现在还没有人提到Flintstone

    Doctrine 也是一个不错的选择。

    【讨论】:

    • 问题是关于 1 个确切的存储,而不是使用多个存储的 ORM
    • @Basil Musa,非常感谢! Flintstone实际上是我要找的!一个简单的基于文件的存储 =) 序列化
    【解决方案3】:

    我会选择 MySQl,以防您将来需要升级您的应用程序。在应用方面,最好是面向未来。

    【讨论】:

      【解决方案4】:

      在已经提到的基础上再补充一点,PHP 原生支持

      对于后者,有一个nice article by Johannes Schlüter

      【讨论】:

        【解决方案5】:

        只是为了建议一些不同的东西,redis(或redisdb-win32,如果你在 Windows 服务器上)

        【讨论】:

        • 有趣的建议——我以前没看过redis...
        【解决方案6】:

        可能不是最佳答案。但我会将其存储到 mySQL 数据库中,如果没有同时提取数据,我可能会使用 mysql_pconnect

        关于 pconnect 的信息在这里:php.net

        数据库的常见替代方案是纯文件,但如果我错了请纠正我,但并发文件访问可能会更慢。

        祝你好运。

        【讨论】:

          【解决方案7】:

          CouchDB 是您的答案(尽管对于您的必需品可能有点矫枉过正)..

          【讨论】:

            猜你喜欢
            • 2011-07-12
            • 2010-10-05
            • 2018-12-18
            • 1970-01-01
            • 2011-05-02
            • 2017-11-06
            • 2011-06-09
            相关资源
            最近更新 更多