【发布时间】:2013-07-03 03:25:24
【问题描述】:
我想我肯定遗漏了一些非常明显的东西,但我想做的是使用 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 查询,我将不胜感激!
【问题讨论】:
-
要获得答案,您需要指定数据表结构、innodb_memcache.container 记录以及您打算如何从 Memcache 中检索缓存数据($key 的确切值)。
-
我添加了额外的信息来帮助解决这个问题