打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
redis 统计点击量
点击量统计有3个模块
1 帖子详细页面模块-点击量自增,并返回当前点击量
步骤比较简单,首先连接redis服务器,接下来发送一个incr命令
使用thread:click:{$id}的形式来命名redis的键
// Connect redis server$redis = new redis();$redis->connect('127.0.0.1', 6379);// Perform increase action$click = $redis->incr('thread:click:123');

2 帖子列表页,返回一页帖子所有的点击量
首先从mysql获得需要显示的帖子列表,然后从redis中获取需要显示的帖子点击数,两个点击量加起来即当前真实的点击量

// Connect redis server$redis = new redis();$redis->connect('127.0.0.1', 6379);// Connect mysql server$mysql = new PDO("mysql:host=localhost;dbname=thread","root","",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); $rs = $mysql -> query("select * from thread limit 30");while($row = $rs -> fetch()){     $click = $redis->get('thread:click:'.$row['id']);    echo $row['id']."	";    echo $row['title']."	";    echo $row['click'], "+", $click, "=", $row['click']+$click;    echo "\n";} 

3 隔一段时间把redis中的数据转存到mysql中,并清空redis
取出所有点击量的数据,更新mysql的点击量,并删除redis中与点击量相关的键

// Connect redis server$redis = new redis();$redis->connect('127.0.0.1', 6379);// Connect mysql server$mysql = new PDO("mysql:host=localhost;dbname=thread","root","",array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); // Fetch all clicks$keys = $redis->keys('thread:click:*');foreach ($keys as $key) {    $id = substr($key,10);    $click = $redis->get($key);    $sql = "update thread SET `click` = `click` + $click where `id` = $id";    echo $sql,"\n";    $rs = $mysql -> query($sql);}// Delete clicks in redis$redis->delete($keys);
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Swoole系列4.6】协程连接池
PHP中如何连接数据库
编程语言php 表格問題,该怎么解决
MySQL Select from 查询数据
使用docker的自定义网络network实现服务之间通过容器名称访问
PDO 操作实例全解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服