key->值数据有哪些好的,快速持久的存储选项?

时间:2010-10-19 20:16:23

标签: php mysql database document-database

对于我正在编写的小型PHP应用程序,我们需要存储大量具有哈希键的记录,以及一些简单的字段值('host','path')。例如:

'4420ffb32a' => array(
  'host' => '127.0.0.1',
  'path' => 'path/to/resource',
);

这样的数据的最佳持久存储是什么? MySQL是最好的选择,还是对于这样简单的数据有点过分?什么会带来最佳表现?

7 个答案:

答案 0 :(得分:12)

简答: Membase


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

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

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

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

memcache的一个缺点是,memcache服务停止的第二个数据都会丢失。这就是Membase的用武之地。它是一个开源的memcache分支,它与协议兼容,这意味着它可以与所有现有的客户端库一起使用。但是,它可以持久保存您的数据并实际提供一致性和可靠性,这是memcache无法独立完成的。


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

答案 1 :(得分:5)

只是建议不同的内容,redis(或redisdb-win32,如果您在Windows服务器上)

答案 2 :(得分:4)

CouchDB是你的答案(虽然你的必需品可能有点矫枉过正)..

答案 3 :(得分:2)

奇怪没有人提到Flintstone直到现在。

另一个不错的选择是Doctrine

答案 4 :(得分:1)

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

有关pconnect的信息:php.net

数据库的一个常见替代方法是普通文件,但如果我错了,请纠正我,但是文件访问速度可能较慢。

祝你好运。

答案 5 :(得分:1)

要为已经提到的内容添加更多内容,PHP本身支持

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

答案 6 :(得分:0)

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