• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Zend_Cache - Memcached Problem

andos

New member
Hallo,

habe eine Frage zum Thema Memcached.

Über folgenden Code trage ich mit Zend-Funktionalität einen Wert in den Memcache:

Code:
$frontendOpts = array(
        'caching' => true,
        'lifetime' => 1800,
        'automatic_serialization' => true
 );

 $backendOpts = array(
        'servers' =>array(
        array(
            'host'   => '127.0.0.1',
            'port'   => 11211,
            'weight' => 1
         )
        ),
        'compression' => false
  );

  $cache = Zend_Cache::factory('Core', 'Memcached', $frontendOpts, $backendOpts);

  $cache->save('test', 'testkey');
  var_dump($cache->load('testkey'));
Dies funktioniert soweit auch.

Wenn ich jetzt diesen Wert über Php-Funktionalität aus dem Memcache auslesen möchte, ist dieser Wert leer:

Code:
$m = new Memcache;
$m->connect('127.0.0.1', 11211);

var_dump($m->get('testkey'));
Hat da jemand eine Ahnung wieso ich den Wert nicht über beide Wege abfragen kann?


grüsse
 

crash

New member
Warum nutzt du denn zum Auslesen der Daten nicht ebenfalls Zend_Cache?

Ich vermute mal das Daten seit memcached anders gespeichert werden als über den alten Client memcache. Also kurz memcache != memcached.
 
Zuletzt bearbeitet:

SeKrebs

New member
Zuerst mal hat crash sicherlich Recht: Wenn du Memcached zu Schreiben benutzt, dann benutze es auch zu Lesen. Vermeide einfach wild Erweiterungen zu mixen, du kannst dir nie sicher sein, dass sie so reagieren, wie es die jeweils andere tut ;)
Als neue Anregung von mir (muss grad an "ich packe meinen Koffer" denken :D): Möglicherweise setzt Zend_Cache einen Pre-/Suffix, um Kollisionen zu vermeiden. Issn bisschen her, aber ich meine es gab auch für Memcache(d) entsprechende Debug-Tools, mit denen man direkt reinschauen konnte, ohne sich auf die Funktionsfähigkeit von Erweiterungen (welcher Sprache auch immer) verlassen zu müssen.
 

DennisBecker

Super-Moderator
Unter *nix Systemen:
Code:
sudo ngrep -dany -qtWbyline port 11211
Zend_Caches Adapter heißt "Memcached" - das hat aber erstmal weniger was mit der PECL Extension Memcache oder der PECL Extension Memcached zu tun. Spontan würde ich auch sagen, dass Zend_Cache einen Prefix setzt. Das lässt sich per ngrep einfach überprüfen.
 

andos

New member
Ja, es wurde ein Prefix gesetzt. Das habe ich nun behoben.

Hab jetzt noch das Problem, dass ich über Zend_Cache Werte eintragen kann und über php diese wieder auslese. Aber andersrum geht es nicht. Sprich mit php Werte eintragen und über Zend auslesen..

Bezüglich der Frage wieso nicht überall Zend_Cache nutzen?
Das sind halt Projektgegebenheiten, die solche Schritte nötig machen.
Möchte ich jetzt auch nicht weiter ausführen.
 
Oben