Nasıl PHP ile memcache kullanırım

2 Cevap php

Ben sonunda onunla geliştirmeye başlayabilirsiniz böylece nihayet benim ev pc memcache çalışan var!

Ben kodu kullanmak çalışıyorum ama ben iyi bir başlangıç ​​için kapalı değilim

php.net @ memcache-set I am unable to get either example code to work that they post

I tried this:

<?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');
?>


And then

<?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');
?>


And got these errors from the code above;

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


I then found this code on the net somewhere and it does work

<?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);
?>


How can I get the examples from PHP.net to work though?


Also I would love to see any emample code involving memcache you might want to share I would really appreciate seeing some working examples

2 Cevap

Eğer hostname ve / veya localhost ile "memcache_host" değiştirmeniz gerekiyor farkında mısın? Yoksa tamamen noktayı eksik? Ayrıca, telnet localhost 11211 çalışın ve ardından telnet your-memcache-host-name 11211 ve (gerekir) aynı sonucu elde görmek.

Eğer bir veritabanı sorgu için PHP ile Memcached kullanmak istiyorsanız, burada ben ne kullanılan bir örnek:

$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;
        }
    }