我想我必须遗漏一些非常明显的东西,但我想要做的是使用
MySQL 5.6并通过memcache返回值
所以我设置了MYSQL来使用memcache插件,在innodb_memcache.containers表中设置细节
我现在在该表中有两个项目,MySQL输入的默认项目和我自己的设置,它们都有表名.
要通过php获取数据,我使用:
$memcache->get($key);
其中$key是db列中的数据
然而,这没有任何回报,我怀疑原因是,根据MySQL Docs,如果没有指定表名,它选择列表中的第一个,这不是我想要的那个,我不明白的是我怎么样在密钥中指定正确的表名,因此它知道要在哪个表中查找密钥.
附加信息:
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."
\n";
$key = "@@" . $table . "." . $key . "." . $table;
$get_result = $memcache->get($key);
print_r($get_result);
上面的代码返回服务器版本没有问题,因此连接正常.
print_r($get_result)返回空白,应该返回一个值
它确实发出通知:试图获得非对象的属性
所以,如果有人能让我知道我如何用$key指定我用来通过memcache查询哪个表,我将不胜感激!