好的,我过去几天一直在使用Memcache,尝试整理我能找到的最有帮助的文章(主要来自Stackoverflow)
我理解使用memcache中的密钥创建一个值,并且已经读过正确/有效的密钥命名很重要。它似乎使密钥唯一的最佳方式是使用$ id。我的问题是如何在没有$ id的情况下使密钥唯一(例如,如果$ id只是在我的Mysqli数据库表中自动递增)
Memcache插入和检索的一个例子如下:
$sql = "INSERT INTO products SET id = $id, name = $name";
// Run Insert Query Here using prepared statement
if (success === TRUE)
{
//set a key
$key = 'product_'.$id ;
$product = array('id' => $id, 'name' => $name);
$memcache->set($key, $product);
}
我认为这样可以正常工作,但我的问题是,如果我无法访问$ id,我怎么才能使密钥唯一?因为我可以使用该名称,但两个用户可能具有相同的名称。
我希望这是有道理的。任何帮助或指导将不胜感激。
答案 0 :(得分:0)
您必须创建一个唯一的ID
3个解决方案:
答案 1 :(得分:0)
如果您使用MySQL为您自动生成ID(通过AUTO_INCREMENT
列),那么为什么不向MySQL询问它使用$mysqli->insert_id()
给新行的ID?
示例:
$result = $mysqli->query("insert into products set name='best product ever'");
if ($result === TRUE) {
// put it into memcached
$key = 'product_' . $mysqli->insert_id();
$product = array('id' => $id, 'name' => $name);
$memcache->set($key, $product);
}