Announcement

Collapse
No announcement yet.

Memcache Class

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Memcache Class

    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

    PHP Code:
    $this->memcache->set($this->prefix."_".$key,$var,false,$time); 
    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...


    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;        
         }
         
         
     }
     
     
    ?>
    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.
Working...
X