Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment fonctionne Memcache avec MySQL ?

Le cache, en général, est un moteur de stockage clé/valeur très rapide où vous pouvez stocker des valeurs (généralement sérialisées) par une clé prédéterminée, afin que vous puissiez récupérer les valeurs stockées par la même clé.

En ce qui concerne MySQL, vous écririez votre code d'application de manière à vérifier la présence de données dans le cache avant d'émettre une requête à la base de données. Si une correspondance était trouvée (la clé correspondante existe), vous auriez alors accès aux données associées à la clé. L'objectif est de ne pas envoyer de requête à la base de données la plus coûteuse si cela peut être évité.

Un exemple (démonstratif uniquement) :

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

Consultez la documentation PHP sur memcached pour plus d'informations, il y a quelques bons exemples et commentaires.