通过计数器,它可以是网页浏览量,下载量,投票数等.基本上,不是非常"关键"的数据.
存储这些信息的"最佳"方式是什么?Mysql不是一个好选择.你们用的是什么?
我想我会选择Redis,因为:
Antirediz(他的昵称)正在积极开发Redis.(每次当我查看我的github仪表板时,他都会提交一些新的代码).他现在正在开发的Redis 全职感谢VMware的
Redis最终是持久的,因此性能是kickass(首先只使用快速的内存).
Redis有一个你需要的原子增量操作.
Redis有很多优秀的PHP库.还有一个作为C扩展编写,因此它具有非常好的性能.Redis网站还概述了这些扩展.有些是纯PHP代码(运行较小但较慢,但更容易配置).
具有upserts的MongoDB非常适合这种情况.
如果您要存储以下内容:
{ "url" : "www.example.com", "pageviews" : 0 }
您可以使用原子操作$ inc快速原子地增加网页浏览量:
db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}})
如果使用upsert,则在更新文档之前不必检查文档是否存在.例如,如果你说:
db.downloads.update({'url' : 'www.example.com'}, {'$inc' : {pageviews : 1}}, {"upsert" : true})
如果文档不存在(页面视图设置为1),则会创建包含www.example.com网址的文档,如果确实存在,则会增加网页浏览量.这意味着您不必担心预先填充集合.