1您所在的位置:开发 > 大数据应用 > 初窥InnoDB的Memcached插件(1)

初窥InnoDB的Memcached插件(1)

2013-08-21 15:47 火丁 火丁笔记 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

前些年,HandlerSocket的横空出世让人们眼前一亮,当时我还写了一篇文章介 绍了其用法梗概,时至今日,由于种种原因,HandlerSocket并没有真正流行起来,不过庆幸的是MySQL官方受其启发,研发了基于InnoDB 的Memcached插件……

AD:

前些年,HandlerSocket的横空出世让人们眼前一亮,当时我还写了一篇文章介 绍了其用法梗概,时至今日,由于种种原因,HandlerSocket并没有真正流行起来,不过庆幸的是MySQL官方受其启发,研发了基于InnoDB 的Memcached插件,总算是在MySQL中延续了NoSQL的香火,以前单独架设Memcached服务器不仅浪费了内存,而且还必须自己维护数据 的不一致问题,有了Memcached插件,这些问题都不存在了,而且借助MySQL本身的复制功能,我们可以说是变相的实现了Memcached的复 制,这更是意外之喜。

安装

为了让文章更具完整性,我们选择从源代码安装MySQL,需要注意的是早期的版本有内存泄漏,所以推荐安装最新的稳定版,截至本文发稿时为止,最新的稳定版是5.6.13,我们就以此为例来说明,过程很简单,只要激活了WITH_INNODB_MEMCACHED即可:

  1. shell> groupadd mysql 
  2. shell> useradd -r -g mysql mysql 
  3. shell> tar zxvf mysql-5.6.13.tar.gz 
  4. shell> cd mysql-5.6.13 
  5. shell> cmake . -DWITH_INNODB_MEMCACHED=ON 
  6. shell> make 
  7. shell> make install 
  8. shell> cd /usr/local/mysql 
  9. shell> chown -R mysql . 
  10. shell> chgrp -R mysql . 
  11. shell> scripts/mysql_install_db --user=mysql 
  12. shell> chown -R root . 
  13. shell> chown -R mysql data 
  14. shell> bin/mysqld_safe --user=mysql & 
  15. shell> cp support-files/mysql.server /etc/init.d/mysql.server 

MySQL安装完毕后,在插件目录我们能看到innodb_engine.so和libmemcached.so:

  1. mysql> SELECT @@plugin_dir; 
  2. +------------------------------+ 
  3. | @@plugin_dir                 | 
  4. +------------------------------+ 
  5. | /usr/local/mysql/lib/plugin/ | 
  6. +------------------------------+ 

此外还需要导入Memcached插件所需要的表结构:

  1. mysql> SOURCE /usr/local/mysql/share/innodb_memcached_config.sql 

一切就绪后就可以激活Memcached插件了(当然如果需要的话也可以禁止):

  1. mysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so"
  2. mysql> UNINSTALL PLUGIN daemon_memcached; 

说明:如果要重启插件的话,可以先uninstall,再install。

Memcached插件相关的配置信息如下,具体介绍可以参考官方文档

  1. mysql> SHOW VARIABLES LIKE '%memcached%'
  2. +----------------------------------+------------------+ 
  3. | Variable_name                    | Value            | 
  4. +----------------------------------+------------------+ 
  5. | daemon_memcached_enable_binlog   | OFF              | 
  6. | daemon_memcached_engine_lib_name | innodb_engine.so | 
  7. | daemon_memcached_engine_lib_path |                  | 
  8. | daemon_memcached_option          |                  | 
  9. | daemon_memcached_r_batch_size    | 1                | 
  10. | daemon_memcached_w_batch_size    | 1                | 
  11. +----------------------------------+------------------+ 

注意:daemon_memcached_r_batch_sizedaemon_memcached_w_batch_size,这两个选项对性能影响较大,简单点说就是控制事务提交的频率,MySQL的缺省值均为1,也就是说每次都提交,这主要是从安全性考虑的,大家可以依照自己的情况来调整。

差不多了,此时Memcached端口应该准备就绪了,你可以试试看:

  1. shell> echo "stats" | nc localhost 11211 

换句话说,MySQL已经兼容Memcached协议,可以直接使用Memcached命令。

内容导航
 第 1 页:安装  第 2 页:配置、限制
 第 3 页:实战



分享到:

关于InnoDB  Memcached  Memcached插件的更多文章
2014四大开发技术点评 给你那些不知道的

编程领域在这几年里迎来了翻天覆地的变化,如果说C、C++、Java在[详细]

网友评论TOP5

查看所有评论(

提交评论

  1. 干货!程序员进好公司的面试技巧
  2. 程序员面试失败的几种原因,你中枪了吗?

热点职位

更多>>

热点专题

更多>>

读书

入侵的艺术
黑客也有优劣之分。很显然对他们的奖励之一是利用黑客手段非法入侵我们公司的安全站点或个人系统。另一种奖励可能是他们的黑客行

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院