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 引擎层 体系结构图
本文永久更新链接地址:
本文原创发布php中文网,转载请注明出处,感谢您的尊重!