Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como funciona o memcache com o MySQL?


Cache, em geral, é um mecanismo de armazenamento de chave/valor muito rápido onde você pode armazenar valores (geralmente serializados) por uma chave predeterminada, para que você possa recuperar os valores armazenados pela mesma chave.

Em relação ao MySQL, você escreveria o código do seu aplicativo de forma que verificaria a presença de dados no cache, antes de emitir uma solicitação ao banco de dados. Se uma correspondência for encontrada (existe uma chave correspondente), você terá acesso aos dados associados à chave. O objetivo é não emitir uma solicitação para o banco de dados mais caro, se isso puder ser evitado.

Um exemplo (somente demonstrativo):
$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));

Confira os documentos do PHP em memcached para mais informações, há alguns bons exemplos e comentários.