php – 高性能展示跟踪
基本上,我想跟踪的某些指标的一部分是某些对象在我们的营销平台上获得的展示次数.
如果您想象我们显示了大量对象,我们希望每次提供对象时进行跟踪. 每个对象都通过单个网关/接口返回给客户端.因此,如果您想象一个请求进入具有某些搜索条件的页面,然后搜索请求被代理到我们的Solr索引. 然后我们得到10个结果. 这10个结果中的每一个都应被视为印象. 我正在努力寻找一个令人难以置信的快速和准确的实现. 有关如何做到这一点的任何建议?你可以投入任何数量的技术.我们目前使用Gearman,PHP,Ruby,Solr,Redis,Mysql,APC和Memcache. 最终所有印象最终都应该保存到mysql,我可以每小时做一次.但我不确定如何在不影响实际搜索请求的加载时间的情况下快速将展示存储在内存中. 想法(我刚刚添加了选项4和5) >一旦结果返回给客户端,客户端就会在我们的平台上请求base64编码的URI,其中包含已经提供服务的所有对象的ID.然后将此对象传递给gearman,然后将计数保存到redis.每小时一次,redis被刷新,并且计数是mysql中每个对象的增量. 编辑回答问题: 这些数据的可靠性并不重要.只要是最好的猜测.我不希望看到30%的印象下降.但我会允许10%的容差 – / acurracy. 解决方法
我认为你有两个最好的选择:
>使用递增命令I redis在您拉动dis时增加计数器.使用Id作为密钥并在Redis中增加它. Redis可以轻松地每秒处理数十万个增量,因此应该足够快,不会对客户产生明显的影响.如果PHP语言绑定支持,您甚至可以管理每个请求.我认为确实如此. 如果你有非常高的redis流量,或者只是想卸载它并获得它的备份,你也可以使用一个读取从服务器来导出到MySQL.如果这样做,您可以将主redis实例设置为不刷新到磁盘,从而提高写入性能. 有关更多扩展使用redis功能进行此类跟踪的其他选项,请参阅this answer您还可以避免使用MySQL部分并从redis中提取数据,从而使整个系统更加简单. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |