当前位置:  开发笔记 > 编程语言 > 正文

PHP - Redis/Memcachedb/Mongodb或其他持久存储来存储计数器

如何解决《PHP-Redis/Memcachedb/Mongodb或其他持久存储来存储计数器》经验,为你挑选了2个好方法。

通过计数器,它可以是网页浏览量,下载量,投票数等.基本上,不是非常"关键"的数据.

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



1> Alfred..:

我想我会选择Redis,因为:

Antirediz(他的昵称)正在积极开发Redis.(每次当我查看我的github仪表板时,他都会提交一些新的代码).他现在正在开发的Redis 全职感谢VMware的

Redis最终是持久的,因此性能是kickass(首先只使用快速的内存).

Redis有一个你需要的原子增量操作.

Redis有很多优秀的PHP库.还有一个作为C扩展编写,因此它具有非常好的性能.Redis网站还概述了这些扩展.有些是纯PHP代码(运行较小但较慢,但更容易配置).



2> kristina..:

具有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网址的文档,如果确实存在,则会增加网页浏览量.这意味着您不必担心预先填充集合.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有