// Connect redis server$redis = new redis();$redis->connect('127.0.0.1', 6379);// Perform increase action$click = $redis->incr('thread:click:123');
2 帖子列表頁,返回一頁帖子所有的點(diǎn)擊量
首先從mysql獲得需要顯示的帖子列表,然后從redis中獲取需要顯示的帖子點(diǎn)擊數(shù),兩個(gè)點(diǎn)擊量加起來即當(dāng)前真實(shí)的點(diǎn)擊量
// 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 隔一段時(shí)間把redis中的數(shù)據(jù)轉(zhuǎn)存到mysql中,并清空redis
取出所有點(diǎn)擊量的數(shù)據(jù),更新mysql的點(diǎn)擊量,并刪除redis中與點(diǎn)擊量相關(guān)的鍵
// 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);
聯(lián)系客服