我觉得我可能漏掉了一些非常显然的东西,但是我想做的是使用MySQL 5.6并通过memcache返回值。
所以,我已经设置了MYSQL来使用memcache插件,在innodb_memcache.containers表中设置了详细信息。
现在,该表中有两个条目,一个是MySQL输入的默认值,另一个是我自己的设置,它们都有表名。
为了通过php获得数据,我使用以下命令:
$memcache->get($key);
其中$key是数据库列中的数据
然而这样返回了空值,我怀疑原因是,根据MySQL文档,如果没有指定表名,则会选择列表中的第一个表,而这不是我想要的表。我不明白的是,我如何在键中指定正确的表名,以便它知道在哪个表中查找该键。
附加信息:
table design:
table: codes
id INT PK
code VARCHAR UNIQUE
codeval VARCHAR
innodb_memcache.containers :
name: mycode
db_schema: databaseName
db_table: codes
key_columns: code
value_columns: codeval
flags: id
cas_column: null
expire_time_column: null
unique_idx_name_on_key: code
代码:
$table = "mycode";
$key = "123456";
$memcache = new Memcache;
$memcache->connect($this->CONNECTURL, $this->CONNECTPORT) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$key = "@@" . $table . "." . $key . "." . $table;
$get_result = $memcache->get($key);
print_r($get_result);
以上代码返回了服务器版本,说明连接正常。
print_r($get_result)应该返回一个值,但实际上是空的。
它会抛出一个警告:试图获取非对象属性。
因此,如果有人能告诉我如何使用$key指定我正在通过memcache查询的表,我将不胜感激!