Hallo,
ich habe ein kleines Problem und hoffe man kann mir helfen. Hab ein Problem mit einer Memcache Klasse die selbstgeschreibne ist. Jedoch findet weder mein Freund noch ich das Problem.
Folgendes Problem.
$mc = new MC;
$mc->addserver("unknow.php", 11211); //Ungültiger Host
$mc->writeMemcache("TESTKEY","TESTVALUE",500) // kommt eine fehlermeldung
Warning: Memcache::set() [memcache.set]: php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in D:\web\inc\class\class.memcache.php on line 39
Diese Ziele
klar könnte ich @ machen aber die klasse erkennt es als true Rückgabe ist mit @ und ohne @ immer TRUE. Ordner logs ist auch auf D:\logs und D:\web\ aber ich finde nirgends daten...
Evtl verbesserungsvorschläge?
Es soll am ende über einen CronJob daten im Arbeitsspeicher geladen werden damit der seitenaufbau von langen listen schneller abläuft. Deswegen die verwendung dieser Memcache.
Bedanke mich schonmal im Vorraus.
ich habe ein kleines Problem und hoffe man kann mir helfen. Hab ein Problem mit einer Memcache Klasse die selbstgeschreibne ist. Jedoch findet weder mein Freund noch ich das Problem.
Folgendes Problem.
$mc = new MC;
$mc->addserver("unknow.php", 11211); //Ungültiger Host
$mc->writeMemcache("TESTKEY","TESTVALUE",500) // kommt eine fehlermeldung
Warning: Memcache::set() [memcache.set]: php_network_getaddresses: getaddrinfo failed: Der angegebene Host ist unbekannt. in D:\web\inc\class\class.memcache.php on line 39
Diese Ziele
PHP Code:
$this->memcache->set($this->prefix."_".$key,$var,false,$time);
PHP Code:
<?php
class MC{
public $memcache;
public $prefix;
private $mem_writes;
private $mem_reads;
private $mem_write;
private $mem_read;
function __construct(){
$this->memcache=new Memcache;
}
public function addServer($server,$port){
$result=$this->memcache->addServer($server,$port);
if($result==false){
$this->memcache=false;
$this->memcacheError("Fehler beim Verbinden zum Memcache Server: ".$server.":".$port);
return false;
}
}
private function memcacheError($str){
$fp=fopen("../logs/mc_log_".date("d")."_".date("m")."_".date("Y").".txt","a+");
$str="\r\n".date("d.m.Y - H:i:s")." -> Fehler: ".$str;
if($fp!=false){
fputs($fp,$str);
fclose($fp);
}
else{
die($fehler);
}
}
public function writeMemcache($key,$var,$time){
if($this->memcache!=false){
$this->memcache->set($this->prefix."_".$key,$var,false,$time);
$this->mem_write++;
$this->mem_writes[]=$this->prefix."_".$key." für ".$time." sec";
return true;
}
$this->memcacheError("Schreiben nicht möglich. Objekt ist fehlerhaft.");
return false;
}
public function readMemcache($key){
if($this->memcache!=false){
$get=$this->memcache->get($this->prefix."_".$key);
$this->mem_read++;
$this->mem_reads[]=$this->prefix."_".$key;
return $get;
}
$this->memcacheError("Auslesen nicht möglich. Objekt ist fehlerhaft.");
return false;
}
public function getStats(){
$stats["read"]=$this->mem_read;
$stats["write"]=$this->mem_write;
$stats["str"]["read"]=$this->mem_reads;
$stats["str"]["write"]=$this->mem_writes;
return $stats;
}
}
?>
Es soll am ende über einen CronJob daten im Arbeitsspeicher geladen werden damit der seitenaufbau von langen listen schneller abläuft. Deswegen die verwendung dieser Memcache.
Bedanke mich schonmal im Vorraus.