sql >> Databasteknik >  >> RDS >> Mysql

Hur fungerar memcache med MySQL?

Cache, i allmänhet, är en mycket snabb nyckel/värdelagringsmotor där du kan lagra värden (vanligtvis serialiserade) med en förutbestämd nyckel, så att du kan hämta de lagrade värdena med samma nyckel.

I förhållande till MySQL skulle du skriva din applikationskod på ett sådant sätt att du kontrollerar förekomsten av data i cachen innan du skickar en begäran till databasen. Om en matchning hittades (matchande nyckel finns) skulle du ha tillgång till data som är kopplade till nyckeln. Målet är att inte skicka en begäran till den mer kostsamma databasen om den kan undvikas.

Ett exempel (endast demonstrativt):

$cache = new Memcached();

$cache->addServer('servername', 11211);

$myCacheKey = 'my_cache_key';

$row = $cache->get($myCacheKey);

if (!$row) {

    // Issue painful query to mysql
    $sql = "SELECT * FROM table WHERE id = :id";

    $dbo->prepare($sql);
    $stmt->bindValue(':id', $someId, PDO::PARAM_INT);

    $row = $stmt->fetch(PDO::FETCH_OBJ);

    $cache->set($myCacheKey, serialize($row));
}

// Now I have access to $row, where I can do what I need to
// And for subsequent calls, the data will be pulled from cache and skip
// the query altogether
var_dump(unserialize($row));

Kolla in PHP-dokument på memcached för mer info finns det några bra exempel och kommentarer.



  1. Hur avinstallerar du MySQL från Mac OS X?

  2. Den repeterbara läsisoleringsnivån

  3. Lägger bara till ett värde till tabellen i sql

  4. Inloggning/registreringssystem med php och mysql