mysql 5.6.4支持nosql

来源:互联网 发布:傲剑飞龙升级数据 编辑:程序博客网 时间:2024/05/21 16:42
在最新的 mysql-5.6.4-labs-innodb-memcached 中,实现了简单的给予 key/value的nosql功能,其主要原理
就是mysqld除了监听3306端口之外,同时监听11211端口。使mysqld和memcached服务处在同一进程中。通过
数据库、表与字段的映射,将缓存在memcache的数据插入到映射的表中。安装包中提供了三张表:containers
cache_policies和config_options,表containers就提供了映射关系,表cache_policies提供了三种存储方式(
innodb_only数据只插入表,cache_only只缓存数据,caching即缓存数据又插入表),表config_options中提供
了一个默认分隔符“|”,就是说如果在表containers的values字段中定义了col1,col2...字段,那在设置缓存值时就
可以用val1|val2的形式,这样将会把val1插入到col1,val2插入到col2。
新版中提供了两个重要文件:
1) libmemcached.so: this is the memcached daemon plugin to MySQL
2) innodb_engine.so: this is an InnoDB API plugin to memcached
安装了插件 libmemcached.so之后,那么memcache就可以通过innodb提供的API直接访问mysql,快捷方便。

安装方式

基本安装可以参考安装包中的INSTALL-BINARY文件,其中一段如下:


然后可以通过 ln 做一下软链接
commands:ln -s path(path为mysql安装包目录) /usr/local/mysql

安装配置表

在安装包的scripts文件夹下有innodb_memcached_config.sql,将文件导入到mysql中
commands:/usr/local/mysql/bin/mysql -uroot -P 3306 -S /tmp/mysql.sock < path/scripts/innodb_memcached_config.sql
执行完之后再执行:/usr/local/mysql/bin/mysql,将会出现innodb_memcache数据库,默认containers配置是将缓存的数据插入到test
数据库中的demo_test表中,字段c1为缓存key,字段c2为缓存数据......

安装innodbmemcache插件

可以通过:show variables like '%memcache%'; 查看插件是否安装
连接mysql,安装commands:install plugin daemon_memcached soname "libmemcached.so";
成功之后将memcache服务安装上

测试

通过telnet 127.0.0.1 11211 连接memcache,简单测试
set a11 10 0 9
123456789
STORED
get a11
VALUE a11 0 9
123456789
END
这样就缓存了一条数据,这时候去数据库查看test.demo_test,并不能查到这条数据,这句翻译不好:

1) If you would like to take a look at what’s in the “demo_test” table, please remember we had batched the commits (32 ops by default) by default.

So you will need to do “read uncommitted” select to find the just inserted rows:

mysql> set session TRANSACTION ISOLATION LEVEL
-> read uncommitted;

反正就是执行上面语句,将读设置为不受限制,然后再执行:select * from test.demo_test;就会查到两条数据,这样恭喜你,你成功了!

有兴趣请深入研究,也可以研究一下mysql集群处理,mysql-cluster最新版本7.2.4


参考资料

http://blogs.innodb.com/wp/2011/04/nosql-to-innodb-with-memcached/简述其特点

http://blogs.innodb.com/wp/2011/04/get-started-with-innodb-memcached-daemon-plugin/插件安装及测试

http://blogs.innodb.com/wp/2011/10/innodb-memcached-with-binlog-capability/二进制日志即关系到数据备份的一些东西

http://labs.mysql.com/ mysql-innodb-memcache安装包下载,目前只支持linux