【问题标题】:How can i specify multiple key columns in MySQL memcache plugin?如何在 MySQL memcache 插件中指定多个键列?
【发布时间】:2019-02-04 03:02:31
【问题描述】:

在我配置并尝试使用 MySQL 的 memcache 插件后,我一直未能成功地尝试从具有复合主键的表中添加命名空间。有例子:

CREATE TABLE test(
`key` VARCHAR(3),
`key2` VARCHAR(3),
`value1` varchar(1024),
`value2` varchar(1024),
PRIMARY KEY (`key`,`key2`)) ENGINE = INNODB;

以及 innodb_memcache.containers 中的行:

INSERT INTO innodb_memcache.containers (name, db_schema, db_table, key_columns, value_columns, flags, cas_column, expire_time_column, unique_idx_name_on_key) VALUES('test', 'kv_data', 'test', 'key|key2', 'value1|value2', '0', '0', '0', 'PRIMARY');

之后,如果我在 memcache 界面中进行设置:

set @@test.hello|world 0 0 11
hello|world

memcache 的响应是:

NOT_FOUND

另外,如果我在表中进行手动插入,然后执行获取:

get @@test.val1|val2

答案是END,好像该项目在数据库中不存在。单列主键不会发生此行为。

有没有人能够为这个用例成功配置内存缓存?我在文档中找不到与复合主键相关的任何内容,而且我不认为容器表中的名称“key_columns”是转录错误。

非常感谢您!

【问题讨论】:

  • 找到答案了吗?

标签: mysql configuration memcached composite-key


【解决方案1】:

答案来晚了,但 Innodb Memcached 的文档记录不是很好。所以,我希望这会对某人有所帮助。

为了 SET 或 GET 您使用 @@ + 表名(来自 innodb_memcache.containers.name)+ 。 (DOT) + 键(来自 innodb_memcache.containers.key_columns)。

在你的情况下,对于 SET:

set @@test.EXAMPLE 0 0 11
hello|world

对于 GET:

get @@test.EXAMPLE

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 2017-06-02
    • 2012-09-29
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    相关资源
    最近更新 更多