redis实时统计
设计思路:
1、 前端smarty插件(smarty_function_murl),将网站所有的连接生成一个urlid,后端根据获取的参数将需要的数据存入redis。
2、后端插件(smarty_function_aurl),将urlid传入redis获取数据。
3、定时将数据跑出来存入关系数据库,清除redis记录
缩减开支事业部没了,编入其它组织了,这个东西我就停工了,分享下思路和代码。
/**
* 使用redis统计pv、uv、链接的点击数。每个链接都需要一个唯一的id,将这个id记录做点击数的key。类不能直接单独使用,只是提供了一个思路。为pv 500W做的测试。项目停了没有进下去,分享下思路。
* @author [email]pigletshake@gmail.com[/email]
* @version
* 策略部署两台redis主从结构,复制信息。每天程序抛出数据,5天清除一次。
*/
namespace mokbuy\helper;
class Analytics {
//page view 的key;
private $_pv_key = 'aitily::pv:::';
//用户唯一id 的可以;
private $_uv_key = 'aitily::uv::';
//用户访问轨迹的key,hs=history
private $_hs_key = 'aitily::hs::';
//点击记录
private $_ck_key = 'aitily::ck::';
//url key
private $_url_key = 'aitily::urlid::';
//首页key
public $_homepage_key = null;
private $_redisr=null;
private $_redisw=null;
private $_key=null;
private $_time=null;
//构造函数
public function __construct() {
//连接redis
$this->_redisr = $this->redisr(3);
$this->_homepage_key = md5("homepage");
$this->_time = $this->_time();
$this->_key = date('Ymd', $this->_time);
}
/**
* 保存消息
* @param string $urid urlid
* @param string $sid 用户id
* [url=home.php?mod=space&uid=987628]@Return[/url] 参数不