Pregunta

Finalmente conseguí que Memcache se ejecutara en la PC de mi casa, ¡así que puedo comenzar a desarrollarlo por fin!

No he tenido un buen comienzo, aunque estoy intentando usar el código en

php.net @ memcache-set No puedo obtener ninguno de los códigos de ejemplo para el trabajo que publican

Intenté esto:

<?php
/* procedural API */
$memcache_obj = memcache_connect('memcache_host', 11211);
memcache_set($memcache_obj, 'var_key', 'some variable', 0, 30);
echo memcache_get($memcache_obj, 'var_key');
?>


Y luego

<?php
/* OO API */
$memcache_obj = new Memcache;
$memcache_obj->connect('memcache_host', 11211);
$memcache_obj->set('var_key', 'some really big variable', MEMCACHE_COMPRESSED, 50);
echo $memcache_obj->get('var_key');
?>


Y obtuve estos errores del código anterior;

Warning: Memcache::connect() [memcache.connect]: Can't connect to memcache_host:11211, A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. (10060) in C:\webserver\htdocs\test\memcache\index.php on line 36

Warning: Memcache::set() [memcache.set]: Failed to extract 'connection' variable from object in C:\webserver\htdocs\test\memcache\index.php on line 42

Warning: Memcache::get() [memcache.get]: Failed to extract 'connection' variable from object in C:\webserver\htdocs\test\memcache\index.php on line 44


Luego encontré este código en la red en algún lugar y funciona

<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");

$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
// add cache
$memcache->set('key', $tmp_object, false, 30) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 30 seconds)<br/>\n";
// get cache
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
?>


¿Cómo puedo hacer que funcionen los ejemplos de PHP.net?


También me encantaría ver cualquier ejemplo de código relacionado con memcache que quieras compartir. Realmente apreciaría ver algunos ejemplos de trabajo

¿Fue útil?

Solución

Te das cuenta de que necesitas reemplazar " memcache_host " con su nombre de host y / o localhost? ¿O me estoy perdiendo el punto completamente? Además, intente telnet localhost 11211 y luego telnet your-memcache-host-name 11211 y vea si obtiene el mismo resultado (debería).

Otros consejos

Si desea usar Memcached con PHP para una consulta de base de datos, aquí hay un ejemplo de lo que usé:

$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211);
$qry = QUERY;
$C = connection to ur database;
findValue($qry, $c);

    function findValue($qry,$c)
    {
        $id = md5($qry);

         if ($gotten = $memcache->get($id)) {
               echo $id." retrieved from memcached </br> ";
               return $gotten;
         } else {
             ### Daemon running but it was NOT cached
             echo  " from database (was NOT cached)";
             # Never mind - fetch it and store for next time!
             $gotten = dbfetch($qry,$c);
             $memcache->set($id,$gotten);
             return $gotten;
        }
    }

Estoy usando menarche con php para reducir el impacto de mi base de datos haciendo algo como esto

    $memcache = new Memcache;

    //Ip address and and port number.
    $memcache->connect('192.168.xxx.xxx', 'xxxx');

    //Fetching data from memcache server
    $arrobj = $memcache->get("arrobj");

    if( false == is_array( $arrobj ) ) {

       $arrobj = data retrieve from Database.

       //Storing data in memcache server for 100 sec.
       $memcache->set( "arrobj", $arrobj, MEMCACHE_COMPRESSED, 100 );
    }

También puede obtener los ejemplos en http://php.net/manual/en /memcache.set.php !!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top