MySQL安装完毕后,需要导入Memcached插件所需要的表结构:
mysql> SOURCE /usr/local/mysql/share/innodb_memcached_config.sql
一切就绪后就可以激活Memcached插件了(当然也可以禁止):
mysql> INSTALL PLUGIN daemon_memcached soname "libmemcached.so";
mysql> UNINSTALL PLUGIN daemon_memcached;
说明:以后一旦修改了原本已存在的Memcached插件的配置信息,均需要使用如上命令来重启Memcached插件(先uninstall,再install),以便让修改生效。
Memcached插件相关的配置信息如下,具体介绍可以参考官方文档:
mysql> SHOW VARIABLES LIKE '%memcached%';
+----------------------------------+------------------+
| Variable_name | Value |
+----------------------------------+------------------+
| daemon_memcached_enable_binlog | OFF |
| daemon_memcached_engine_lib_name | innodb_engine.so |
| daemon_memcached_engine_lib_path | |
| daemon_memcached_option | |
| daemon_memcached_r_batch_size | 1 |
| daemon_memcached_w_batch_size | 1 |
+----------------------------------+------------------+
注意:daemon_memcached_r_batch_size和daemon_memcached_w_batch_size,这两个选项对性能影响较大,简单点说就是控制事务提交的频率,MySQL的缺省值均为1,也就是说每次都提交,这主要是从安全性考虑的,大家可以依照自己的情况来调整。
此时Memcached端口应该准备就绪了,你可以试试看:
shell> echo "stats" | nc localhost 11211
换句话说,MySQL已经兼容Memcached协议,可以直接使用Memcached命令。
如果你是运维的话,只需要把memcached安装到服务器中,至于使用,需要开发人员在代码中实现。安装的话,可以参考一下连接 http://www.rootop.org/pages/1656.html ,如果你是开发就需要从代码下手去使用它了。
memcached和mysql的querycache相比,1)相比mysql的querycache,把memcached引入利用中需要很多的工作量。mysql的querycache,可以自动地缓存sql查询的结果,被缓存的sql查询可以被反复、快速的履行。优点:1)当修改表时,mysql的querycache会立刻被刷新(flush)。当写操作很频繁时,mysql的querycache会常常让所有缓存数据都失效。2)在多核cpu上,mysql的querycache会遇到扩大问题(scalabilityissues)。在多核cpu上,querycache会增加1个全局锁(globallock),由于需要刷新更多的缓存数据,速度会变得更慢。3)在mysql的querycache中,是不能存储任意的数据的(只能是sql查询结果)。利用memcached,我们可以搭建出各种高效的缓存。比如,可以履行多个独立的查询,构建出1个用户对象(userobject),然后将用户对象缓存到memcached中。而querycache是sql语句级别的,不可能做到这1点。在小的网站中,querycache会有所帮助,但随着网站范围的增加,querycache的弊将大于利。4)querycache能够利用的内存容量遭到mysql服务器空闲内存空间的限制。给数据库服务器增加更多的内存来缓存数据,固然是很好的。但是,有了memcached,只要您有空闲的内存,都可以用来增加memcached集群的范围,然后您就能够缓存更多的数据。
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....