Memcachedに関する多数のガイドを読みましたが、いくつかの点が不明です。
1)私は多くの例を見てきましたが、多かれ少なかれ次のように見えます:
$sql = "SELECT `name` FROM `users` WHERE `id` = 1;";
$memcache->set(md5($sql), $sql, false, 60);
$memcache->get(md5($sql));
ただし、Memcacheに関する知識が限られているため、ここに重大な欠陥があります。同じ方法を使用してINSERT/UPDATE
リクエストを含むデータを保存することはできません。技術的には、ハッシュが異なる結果になるためです。
解決策として、次のようなものを使用できると考えました。次のようなクラス/関数を作成します。
class db {
function insert($sql, $ttl, $key) { // $key would be the name of the key I would manually generate for each query. To maintain uniqueness for each user where needed, could be user_id_keyname
$memcache->set($key, $sql, false, $ttl);
mysql_query($sql);
}
function sel($sql, $ttl, $key) {
if ($memcache->get($key)) then return $memcache->get($key);
else {
$memcache->set($key, $sql, false, $ttl);
return mysql_query($sql);
}
これは私の問題への適切なアプローチでしょうか?コードに関するコメントをぜひご覧ください。}}