6

反之,它可能是网页浏览量、下载量、投票数等。基本上,不是非常“关键”的数据。

存储这些信息的“最佳”方式是什么?Mysql 不是一个好的选择。你们都用什么?

4

4 回答 4

10

我想我会选择 Redis,因为:

  • Antirediz(他的昵称)确实在积极开发Redis。(每次我查看我的 github 仪表板时,他都会提交一些新代码)。感谢 VMware,他现在正在全职开发 redis
  • Redis 最终是持久的,因此性能非常出色(首先只使用快速的内存)。
  • Redis 有一个你需要的原子增量操作。
  • Redis 有很多优秀的 PHP 库。还有一个是作为C 扩展编写的,因此它具有非常好的性能。Redis 网站也对这些扩展进行了概述。有些是纯 PHP 代码(运行一点点但速度较慢,但​​更容易配置)。
于 2010-01-13T16:28:15.803 回答
9

带有 upserts 的 MongoDB 非常适合这个。

如果您要存储以下内容:

{ "url" : "www.example.com", "pageviews" : 0 }

您可以使用原子操作 $inc 以原子方式快速增加页面浏览量:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})

如果您使用 upserts,则不必在更新文档之前检查文档是否存在。例如,如果你说:

db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})

如果 URL 为 www.example.com 的文档不存在(页面浏览量设置为 1),则将创建该文档,或者如果确实存在,则页面浏览量将增加。这意味着您不必担心预先填充集合。

于 2010-01-11T22:28:53.870 回答
1

1990 年代著名的查看计数器使用简单的文件来存储数字。如果您只需要存储一个数字,那么任何东西都足够了。

于 2010-01-10T02:27:01.310 回答
-1

我会说 APC 或 memcached 是不错的选择。

于 2010-01-10T02:34:16.600 回答