1)简单粗暴型的,这里不用去管浏览器的user-agent,不管cookie等信息,每产生一次PV,就直接计数,优点:简单,缺点:可能不真实,也可能有刷量数据

2) 稍微细腻点的统计,会区分新老用户,楼主你可以研究下baidu统计的SDK,里面包含有用户的浏览器信息,操作系统信息、用户的地域信息等,也就是说, 你通过浏览器的javascript以及和服务器数据的交互,对于后台服务器来说,是可以获取这些数据的,那么对于站长之家这样的网站,他可能想要统计到 真实的用户访问情况,以便有些行为分析,这时会结合用户的IP信息、cookie信息(也就是session)和user-agent来统计分析,注意, 这里的IP是映射后的IP地址,对于我们日常的家庭拨号上网,都是拿到的运营商的虚拟出来的内网地址,以便节省IPv4资源,所以说,一个user- agent、IP、cookie基本上能唯一标识一个用户信息。

3) 进一步说,有了这些数据之后,从设计角度来说,阅读量的这个信息在页面展现中不是优先级最高的(优先级最高的应该是业务内容本身),但阅读量的相关信息是 有意义的,那么问题来了,对于阅读量这种信息是否在数据库的设计层面上要加写锁去互斥? 这里推荐了解下什么是CAP原理。

4) 所以解决方案,可能是缓存,也可能是有IP的判断、cookie的检测,这个要尝试之后才知道了,不过个人觉得可能性最大的是这个阅读量,汽车之家采用的是一个异步统计的办法,也就是说你产生真实的阅读之后,他是经过后台处理之后才给阅读量计数器+1的。
提供一下实现这种思路:

    • 一个IP最多只增加两次阅读类似的机制,或者还有更深一层次逻辑判断的,比如第二天IP清空,然后这个统计算法变成了每一天每一个IP都有两次阅读次数增加的机会

    • 一段固定时间内(比如30分钟),不管你用同一个浏览器内核访问多少次只增加一次阅读量。

    • 校验user-agent、cookie等信息;每一次浏览插入一条访客记录到A表

    • 微博实现:我是做微博的,我说说微博的做法。阅读量,点赞数,单访问限制。都是用redis实现的。然后每天夜里空闲时段同步数据库(按一定规则,分批等)。

    • 如果用户已经登录,只统计一次;如果是游客,则根据IP、timestamp、cookie等综合判断,相同就只统计一次。
      这样可以防止刷浏览量。

SEO 统计算法的更多相关文章

  1. 基于FPGA的HDTV视频图像灰度直方图统计算法设计

    随着HDTV的普及,以LCD-TV为主的高清数字电视逐渐进入蓬勃发展时期.与传统CRT电视不同的是,这些高清数字电视需要较复杂的视频处理电路来驱动,比如:模数转换(A/D Converter).去隔行 ...

  2. 《数据结构与算法之美》 <01>复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

    我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间.所以,执行效率是算法一个非常重要的考量指标. 那如何来衡量你编写的算法代码的执行效率呢?这里 ...

  3. 基于Modelsim的直方图统计算法仿真

    一.前言 本篇主要针对牟新刚编著<基于FPGA的数字图像处理及应用>第六章第五节中直方图统计相关类容进行总结,包括代码实现及 基于Modelsim的仿真.书读百遍,其意自现. 2020-0 ...

  4. 在thinkphp中,写的博文标签多对多关系的标签频率统计算法

    常常看到别人的博客里面,或者网站里面有这样随机颜色,但字体大小与标签出现频率有关的标签云,于是自己就想写一个.至于颜色的随机显示,那就很简单了,这里就不列代码. 因为正在学thinkphp,所以数据查 ...

  5. Chapter3 复杂度分析(上):如何分析,统计算法的执行效率和资源消耗

    数据结构解决的问题:“快” + “省”,即为时间,空间复杂度分析 1:为什么需要复杂度分析? 因为通过统计手段分析的结果受到两个因素的影响,一:测试结果非常依赖测试环境,二:测试结果受数据规模的影响很 ...

  6. opencv车流量统计算法

    #include "cv.h" #include <cxcore.h> #include <highgui.h> #include <cvaux.h& ...

  7. 五种基于RGB色彩空间统计的皮肤检测算法

    最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题 网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤 的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于 ...

  8. 焦大:seo思维进化论(番外)

    http://www.wocaoseo.com/thread-54-1-1.html 我已经在博客说了学seo研究算法是愚蠢的行为,但是很多人仍旧来问se的算法问题,其中最多的就是问TF-IDF算法, ...

  9. Hadoop应用开发实战(flume应用开发、搜索引擎算法、Pipes、集群、PageRank算法)

    Hadoop是2013年最热门的技术之一,通过北风网robby老师<深入浅出Hadoop实战开发>.<Hadoop应用开发实战>两套课程的学习,普通Java开发人员可以在最快的 ...

随机推荐

  1. 【miscellaneous】 GStreamer应用开发手册学习笔记之基础概念介绍

    第3章. 基础概念介绍 本章将介绍GStreamer的基本概念. 理解这些概念对于你后续的学习非常重要,因为后续深入的讲解我们都假定你已经完全理解了这些概念. 3.1. 元件(Elements) 元件 ...

  2. matplotlib中的imshow()

    import matplotlib.pyplot as plt plt.imshow(x,cmap) x表示要显示的图片变量,cmap为颜色图谱,默认为RGB(A)颜色空间,也可以指定,gray是灰度 ...

  3. Shuffle 机制

    1. 概述 Map 方法之后,Reduce 方法之前的数据处理过程称之为 Shuffle. 2. Partition 分区 需求:要求将统计结果按照条件输出到不同文件中(分区).比如:将统计结果按照手 ...

  4. Linux由于物理节点故障导致的异常重启-Case1

    问题描述:Linux VM异常重启,需要排查问题原因 排查结果: 查询Messages日志获取到的信息 虚拟机内核版本: Jun :: test01 kernel: Linux version -.e ...

  5. Vue.js与React的全面对比

    Vue与React的对比 Vue.js与React.js从某些反面来说很相似,通过两个框架的学习,有时候对一些用法会有一点思考,为加深学习的思索,特翻阅了两个文档,从以下各方面进行了对比,加深了对这两 ...

  6. Navicat 导入,导出数据 etc

    Navicat 不仅做了分页查询, 显示 `SELECT *,rowid "NAVICAT_ROWID" FROM "main"."Table_100 ...

  7. 【Docker】:使用docker安装mysql,挂载外部配置和数据

    普通安装 1.下载镜像,mysql 5.7 docker pull mysql:5.7 2.创建mysql容器,并后台启动 docker run -d -p 3306:3306 -e MYSQL_US ...

  8. VMware安装windows2003

    一.安装vm 这一项大家应该都会,网上也有很多教程. 二.搭建Windows server 2003 1.镜像下载- 2.虚拟机安装 首先是新建虚拟机,我选的是自定义,也可以选典型 第一步默认下一步, ...

  9. 自定义模块,time,datetime以及random

    自定义模块,time,datetime以及random 1.自定义模块 自定义一个模块 import #导入 (拿工具箱) 模块分类 1.内置模块(标准库) --python解释器自带的.py文件(模 ...

  10. 1262: 谁不爱打牌(Java)

    WUSTOJ 1262: 谁不爱打牌 转自 断-肠-人的博客 Java代码在文末 Description BobLee最近在复习考研,但是他也喜欢打牌(有谁不爱玩牌呢?).但是作为一名ACMER,斗地 ...