博客大赛访问量实现的总结

上周博客大赛有个需求:关于每个ip每天访问只统一一次。
 由于担心博客大赛的访问量较高,所以每次去数据库查询有没有当天记录,没有就插入,有就不插入的想法被毙掉
 方法二:程序实现一个计数器,计算器放入memcached,对每次的有效访问进行累计,到一定程度批量入库。
 方法二的优点:首页对于访问量的查询灰常快,不通过数据库,页面的访问量显示是实时的。
  方法二的缺点:当memcached down掉时,在上次入库时间点到down机时间点这段时间数据没有了
 对于博客大赛这种涉及物质奖励的活动,我觉得这个做法还是欠妥,毕竟涉及到利益(
 当然使用缓存就要接受他的不好的一些方面,比如稳定性,如果方方面面都完美的话,那数据库还混什么
 所以这个想法最后也没有被采纳。
 方法三:每次插入访问量,先查看缓存服务器上有没有今天的访问量记录,有的话,进一步检查访问记录是不是今天的(因为缓存的有效时间和
 上一次访问时间相加可能到第二天),是今天的话,不插入数据库,如果缓存没有或者是昨天的缓存,那么插入数据库,然后更新缓存。
 在页面显示统计量的时候,会使用缓存
  方法三的优点:统计量是比较准确的
 方法三的缺点:  统计量显示是延时的,这样的性能也是个未知数
 
 采用方法三可以在客户端利用cookie再次优化,利用cookie保存该客户端对某个博客的访问,
 如果有这个cookie直接就返回,不做后续的操作了。
 存储cookie也很有意思,第一次本人想法是 存储访问者的ip,访问者的访问的blogId,访问的时间(到day就可以了)为cookie name的cookie,
 但是出现有意思现象,cookie name中出现两个ip(可能是ip跳转的缘故),出现两个ip没有问题,可恶的是中间的分隔符“,”,可能这个原因,cookie
 保存不成功,后来经过讨论cookie的存放改成name为访问的blogId,value为ip+访问的时间,再进行判断,一切安详,没有异常

posted on 2010-08-02 17:02 nod0620 阅读(188) 评论(0)  编辑  收藏 所属分类: 工作


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜