Copy code The code is as follows:
$memcached = array( //Use memcached's multi-process to simulate multiple Taiwan memcached server cn en is the memory server name
'cn'=>array('192.168.254.144',11211),
'en'=>array('192.168.254.144',11212)
);
$mysql = array( // mysql master-slave my environment is: xp master linux slave mysql 5 php5
'master'=>array('192.168.254.213','root', '1','mydz'),
'slave_1'=>array('192.168.254.144','root','1','mydz') //You can flexibly add multiple slave servers
; 🎜>
Copy code
The code is as follows:
class Memcached { private $mem; public $pflag=''; // memcached pconnect tag
private function memConnect($serkey){
require 'config.php';
$server = $memcached;
$this-> ;mem = new Memcache;
$link = !$this->pflag ? 'connect' : 'pconnect' ;
$this->mem->$link($server[$serkey][ 0],$server[$serkey][1]) or $this->errordie('memcached connect error');
}
public function set($ser_key,$values,$flag='' ,$expire=''){
$this->memConnect($this->tag($ser_key));
if($this->mem->set($ser_key,$ values,$flag,$expire)) return true;
else return false;
}
public function get($ser_key){
$this->memConnect($this->tag ($ser_key));
if($var=$this->mem->get($ser_key)) return $var;
else return false;
}
private function tag ($ser_key){
$tag=explode('_',$ser_key);
return $tag[0];
}
private function errordie($errmsg){
die ($errmsg);
}
}
?>
Simply encapsulates the operation of memcached. Not much time for details. I am leaving the company
On multiple memcached servers, my implementation idea is as follows: When adding information to the memory server, I choose to manually set it to be added to that server instead of the traditional automatic allocation based on ID.
This can be more accurate Be flexible.
Use the name of the memory server to express. For example, to save $arr information to the en memory server, I would write $mem->set('en_'.$arr); Understand it
Copy code
The code is as follows:
class Mysql { private $mysqlmaster; private $myssqlslave; private static $auid=0;
public function __construct(){
require 'config.php';
$msg = $mysql;
$this->mysqlmaster = new mysqli($msg['master'][0],$msg['master'][1],$msg['master'][2],$msg['master'][3]); //master mysql
$this->mysqlslave = $this->autotranscat($msg); // slave mysql
if(mysqli_connect_errno()){
printf("Connect failed: %sn",mysqli_connect_error ());
exit();
}
if(!$this->mysqlmaster->set_charset("latin1") && !$this->mysqlslave->set_charset(" latin1")){
exit("set charset error");
}
}
private function autotranscat($mysql){
session_start();
$_SESSION[' SID']!=0 || $_SESSION['SID']=0 ;
if($_SESSION['SID'] >=count($mysql)-1) $_SESSION['SID'] = 1 ;
else $_SESSION['SID']++;
$key = 'slave_'.$_SESSION['SID'];
echo($_SESSION['SID']);
return new mysqli($mysql[$key][0],$mysql[$key][1],$mysql[$key][2],$mysql[$key][3]);
}
public function mquery($sql){ //insert update
if(!$this->mysqlmaster->query($sql)){
return false;
}
}
public function squery($sql){
if($result=$this->mysqlslave->query($sql)){
return $result;
}else{
return false;
};
}
public function fetArray($sql){
if($result=$this->squery($sql)){
while($ row=$result->fetch_array(MYSQLI_ASSOC)){
$resultraa[] = $row;
};
return $resultraa;
}
}
}
?>
This is an encapsulation of mysqli. It is an encapsulation of the operation of reading from slave and writing to master.
Copy code
The code is as follows:
require 'init.php';
$mem = new Memcached;
/* $mem->set('en_xx','bucuo');
echo($mem ->get('en_xx'));
$mem->set('cn_jjyy','wokao');
echo($mem->get('cn_jjyy'));
*/
$sq = new Mysql;
$sql = "insert into mybb(pid) values(200)";
$mdsql = md5($sql);
if(!$ result=$mem->get('cn_'.$mdsql)){
$sq->mquery("insert into mybb(pid) values(200)"); //Insert into main mysql
$result = $sq->fetArray("select * from mybb"); //The query is from mysql
foreach($result as $var){
echo $var['pid'];
}
$mem->set('cn_'.$mdsql,$result); //Add to the memcached server named cn
}else{
foreach($result as $var ){
echo $var['pid'];
}
}
?>
http://www.bkjia.com/PHPjc/321935.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321935.htmlTechArticleCopy the code as follows: ?php $memcached = array( //Use memcached multi-process to simulate multiple memcached servers cn en is the memory server name 'cn'=array('192.168.254.144',11211),...