我认为我必须在这里遗漏一些非常明显的东西,但我想做的是使用 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."<br/>\n";
$key = "@@" . $table . "." . $key . "." . $table;
$get_result = $memcache->get($key);
print_r($get_result);
上面的代码没有问题地返回服务器版本,因此连接正常。print_r($get_result) 在应该返回值时返回空白
它确实抛出了一个通知:试图获取非对象的属性
因此,如果有人可以让我知道我如何使用 $key 指定用于通过 memcache 查询的表,我将不胜感激!