我已经阅读了许多关于 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);
}
这可能是解决我的问题的正确方法吗?真的很想看到对代码的任何评论。} }