V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
snriud
V2EX  ›  PHP

关于每个主题的浏览次数统计

  •  
  •   snriud · 2016-09-29 17:50:59 +08:00 · 2231 次点击
    这是一个创建于 2975 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我是 PHP 新手,在做一个业余网站的过程中遇到了一个问题:

    每个主题(帖子)都会有对应这个主题的浏览次数统计,比如 V2EX 中的是点击次数,如何能够保证对每个人只进行一次统计呢(不论登录与否,每个客户端的访问只增一次,重复的刷新只作一次自增)?

    我试过了 V2EX 上的,在登录后,每刷新一次就会增 1 ,而不登录的情况下,即使是第一次访问也不会增 1 。

    我目前的思路是将主题的 ID 同用户的 SESSION 绑定在一起,记录某个 SESSION 下访问过的主题 ID ,在收到新的访问请求时先去判断之前是否访问过。这样做是否合理?有没有更好的办法?

    在此先提前谢过各位的回答~

    3 条回复    2016-09-30 08:25:19 +08:00
    lygmqkl
        1
    lygmqkl  
       2016-09-29 21:52:57 +08:00 via iPhone   ❤️ 1
    建立个数据库级的 log 表 session 是有 id 的可以利用下。甚至可以加入一点缓存的思想每 10 分钟清理下 log 更新下数据
    snriud
        2
    snriud  
    OP
       2016-09-30 08:12:53 +08:00
    @lygmqkl 谢谢您的建议。

    缓存的话您是指把 log 表中的数据读到类似 redis 之类的数据库中以加快访问吗?

    另外,您的 yiilib.com 做得很不错,我加入收藏夹了~~
    lygmqkl
        3
    lygmqkl  
       2016-09-30 08:25:19 +08:00
    @snriud 其实是个抽象缓存,我是建议每 10 分钟清理下 log(把未增加的数量加上去,然后用过的 log 数据按照某种规则处理掉。)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1600 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:57 · PVG 00:57 · LAX 08:57 · JFK 11:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.