欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

innodb_memcache之配置

程序员文章站 2022-06-06 13:36:57
...

innodb_memcache在安装之前,需要导入配置sql,配置sql位于安装目录的share目录下,文件名为innodb_memcached_config.sql,导入至

innodb_memcache在安装之前,需要导入配置sql,配置sql位于安装目录的share目录下,文件名为innodb_memcached_config.sql,导入至数据库即可。

导入完之后,我们发现多了一个数据库innodb_memcache,该库下有三个表:

cache_policies:缓存策略表

config_options:配置选项表

containers:memcache元数据容器表

1. cache_policies定义了缓存策略 三种刷新策略: innodb_only:只用InnoDB存储数据 cache-only:只用传统的Memcached引擎作存储。 caching:如果在Memcached里找不到,就查询InnoDB。 2. config_options定义了配置信息 separator 多字段组合的间隔符号,默认为| table_map_delimiter 表和键之间的间隔符,默认为. 若修改,则需要重启mysql或者是重新安装memcache插件 3. containers 定义了所有memcache中表和key的元数据信息 name:定义的名字 db_schema:表所在的数据库 db_table:需要映射的表名 key_columns:key所对应的字段名 value_columns:value所对应的字段名,可以用|来进行拼接 flags:memcache的标记 cas_column:字符串长度字段 expire_time_column:过期时间 unique_idx_name_on_key:数据库中的唯一字段索引名字 4. 其他服务器控制参数 mysql> show variables like '%memcache%'; +----------------------------------+------------------+ | Variable_name | Value | +----------------------------------+------------------+ | daemon_memcached_enable_binlog | OFF | | daemon_memcached_engine_lib_name | innodb_engine.so | | daemon_memcached_engine_lib_path | | | daemon_memcached_option | -p | | daemon_memcached_r_batch_size | 1 | | daemon_memcached_w_batch_size | 1 | +----------------------------------+------------------+ 6 rows in set (0.00 sec) 对应的参数含义如下: daemon_memcached_enable_binlog:表示memcache中set是否写入binlog daemon_memcached_option :innodb_memcache默认选项,,可以通过"-p 11222"指定端口 daemon_memcached_r_batch_size、daemon_memcached_w_batch_size:关系到memcache的写入和读取性能, 默认为1,即表示每次都从innodb文件读取和写入!可酌情更改 5. 一个例子 建表: use test; CREATE TABLE `users` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `username` VARCHAR(15) NOT NULL, `password` VARCHAR(32) NOT NULL, `email` VARCHAR(50) NOT NULL, `flags` INT(10) UNSIGNED DEFAULT '0', `cas_column` BIGINT(20) UNSIGNED DEFAULT '0', `expire_time_column` INT(10) UNSIGNED DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=INNODB; 写入数据: INSERT INTO `users` (`username`, `password`, `email`) VALUES ('test1', 'test1', 'test2@linuxidc.com'), ('test2', 'test2', 'test2@linuxidc.com'); 写入memcache元数据表: 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 ( 'default', 'test', 'users', 'username', 'password|email', 'flags', 'cas_column', 'expire_time_column', 'username' ); get数据: [root@www share]# echo 'get @@default.test1'|nc localhost 11222 VALUE @@default.test1 0 19 test1|test2@linuxidc.com END [root@www share]# echo 'get @@default.test2'|nc localhost 11222 VALUE @@default.test2 0 19 test2|test2@linuxidc.com END

innodb_memcache之使用

innodb_memcache之安装

innodb_memcache之配置

MySQL Server 层和 InnoDB 引擎层 体系结构图

本文永久更新链接地址:

innodb_memcache之配置