|
點擊量統(tǒng)計有3個模塊 1 帖子詳細頁面模塊-點擊量自增,并返回當前點擊量 步驟比較簡單,首先連接redis服務器,接下來發(fā)送一個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 帖子列表頁,返回一頁帖子所有的點擊量 // 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中的數(shù)據(jù)轉(zhuǎn)存到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); |
|
|