php – 使用MYsql 5.6 Memcache

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 使用MYsql 5.6 Memcache脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我想我必须遗漏一些非常明显的东西,但我想要做的是使用 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查询哪个表,我将不胜感激!

@H_304_37@解决方法
表名(@@ table_id中的table_id)必须是映射中的值(innodb_memcache.containers),而不是实际的表名(如果有变化).

如果你在映射中的表名是mycode,那么通过memcache生成查询应如下所示:

$table = 'mycode';
$key   = '123456';
$memcache->get( '@@' . $table . '.' . $key );

没有额外的’.’ . $table结尾.

有些详细信息可从InnoDB memcached Plugin文档页面获得.

举几个重要的地方:

>使用select * From innodb_memcache.containers;获得定义的映射;
>注意查询组织:

脚本宝典总结

以上是脚本宝典为你收集整理的php – 使用MYsql 5.6 Memcache全部内容,希望文章能够帮你解决php – 使用MYsql 5.6 Memcache所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。