PHP操作redis缓存数据库

刘德胜 486次浏览

摘要:其实这个也只适合量大的数据查询,我并不怎么认为就有多好。不过,下次也应用到程序中去试一下,看到底会不会快些,目前我没有用缓存同样也快!<?php define('HOST','10.0.0.1'); define('USER','liudeshengaa...

其实这个也只适合量大的数据查询,我并不怎么认为就有多好。不过,下次也应用到程序中去试一下,看到底会不会快些,目前我没有用缓存同样也快!

<?php 
define('HOST'    	   ,'10.0.0.1');
define('USER'    	   ,'liudeshengaa');
define('PASS'    	   ,'123456');
define('DATABASE'	   ,'hebaizi');
class mysql {
	
	function __construct(){
		$db =@mysql_connect(HOST,USER,PASS) or die ("连接数据库服务器失败!");
		mysql_select_db(DATABASE,$db) or die ("连接数据库失败!");mysql_query("set names utf8 ");
		$this->redis    =    new Redis(); 
		$this->redis->connect('127.0.0.1', 6379);
	}

	function query($val){
		$arrdata = $this->redis->get($val); 
		if(!empty($arrdata)){
			return @json_decode($arrdata);
		}else{
			$select=mysql_query($val);
			while(@$row=mysql_fetch_assoc($select)){
				@$arr[]=$row;
			}	
		    $redisrow = json_encode($arr);  
		    $this->redis->setex($val,'15',$redisrow); 
			return @$redisrow;//这里应用时,请换成$arr,然后不怕麻烦就话,把这个15秒做为类的常量或变量放进来,这样灵活些
		}
	}

	function find($sql){
		$arr = mysql_fetch_row(mysql_query($sql));
		return @$arr;
	}	

	function getone($sql){
		$arr = mysql_fetch_assoc(mysql_query($sql));
		return @$arr;
	}	

	function add($val){
		mysql_query($val);
		return mysql_insert_id();
	}

	function save($val){
		return mysql_query($val);
	}

	function del($val){
		return mysql_query("$val");
	}

	function page($dbnmae,$condition='',$limit=10,$start=1,$showzd='*'){

		if(strlen($start)>6){ 
			$start=1; 
		}

		if($condition){
			$condition = $condition;
		}else{
			$condition = '';
		}

		$dball=$this->query("select * from $dbnmae $condition");
		$allnum=count($dball); 
		$gjy=ceil($allnum/$limit);

		if($start>$gjy) { $start=1; }

		$num2 = $limit*$start;
		$num4 = $start-1;
		$num4 = $limit*$num4;	

		$product=$this->query("select $showzd from $dbnmae $condition limit $num4,$limit");

		$syy = $start-1;
		$xyy = $start+1;
		$syy<1?$syy=1:$syy=$syy;
		$xyy>$gjy?$gjy=$gjy:$gjy=$gjy;
		$arrdata[0]=$product; //数据
		$arrdata[1]=$allnum;//总数量
		$arrdata[2]=$syy; //上一页
		$arrdata[3]=$xyy; //下一页
		$arrdata[4]=$gjy; //总页数
		$arrdata[5]="select $showzd from $dbnmae $condition limit $num4,$limit";
		return $arrdata;
	}

	function close(){
		mysql_close();
	}
}

$job = new mysql();
$data = $job->page("hebazidata");
print_r($data);