今天用thinkphp开发网站时,做一个首页的轮播要求即时更新

做法就是每次有新的回复时  保存回复的id和文章的id 保存到缓存里。同时判断数组的长度。保持count = 4

 

 
<?php
	/**
	 * 加入一个最新回答的缓存
	 * @param int $tmp_id
	 * @param int $rep_id
	 * @return boolean
	 */
	public function pushRepCache($tmp_id,$rep_id){
		$key = C('xa_first_key');
		
		if(!is_numeric($tmp_id) || !is_numeric($rep_id)){
			return false;
		}	
		$value = S($key); //key=>value
		$data = array("ask_id" => $tmp_id,"rep_id"=>$rep_id); //组成数据
		if(!isset($value) || empty($value)){ //第一次是空的 加入
			$value = array();
			$value[0] = $data;
			S($key,$value);
		}else{ //缓存有值 先进先出 len>4
			if(count($value) >=4){
				array_pop($value);
			}
			array_unshift($value, $data); //添加
			S($key,$value); //保存 
		}
		return true;
		
	}    


?>

  

 

网站没有配置redis。如果有redis 就可以用redis完善的控制列队。

  最后那个 S($key,$value) 我一开始忘记写了。在调试的时候数组的长度始终保持两个长度,结果花了我1个多小时的查找原因   - -!。

posted @ 2014-10-18 15:47  savey  阅读(345)  评论(0)    收藏  举报
savey:better life,do it best