记MySQL使用UDF自动同步memcached的效率 (1)
MySQL可以使用MySQL的mysql-udf-http进行效率测试 ,这次不使用rest架构,而是使用:libmemcached和memcached_functions_mysql,测试版本是:libmemcached-0.34.tar.gz和memcached_functions_mysql-0.9.tar.gz,其它版本配对都有问题,我安装测试过有问题的版本有:
- memcached_functions_mysql-1.1在:
- libmemcached-0.49libmemcached-0.48libmemcached-0.47libmemcached-0.30libmemcached-0.43\libmemcached-0.42
- 下安装有错误
- memcached_functions_mysql-0.10在:
- libmemcached-0.42下安装有错误
- memcached_functions_mysql-0.8在:
- libmemcached-0.49libmemcached-0.48libmemcached-0.47libmemcached-0.44libmemcached-0.43
- libmemcached-0.42下安装有错误
MySQL测试版本:5.1.55,操作系统Centos5.4 64bit,内存2G
安装libmemcached-0.34和memcached_functions_mysql-0.9:
- [root@sunss24 libmemcached-0.34]#./configure
- --with-memcached=/home/memcache/bin/memcached
- [root@sunss24 libmemcached-0. 34]# make
- [root@sunss24 libmemcached-0. 34]# make install
- 再运行一下memstat,算成功了
- [root@sunss24 ~]# ln -s /usr/local/lib/libmemcached.so.3 /usr/lib/
- [root@sunss24 ~]# cd memcached_functions_mysql-0.9
- [root@sunss24 memcached_functions_mysql-0.9]# ./configure
- --with-mysql=/usr/local/mysql/bin/mysql_config
- --libdir=/usr/local/mysql/lib/
- [root@sunss memcached_functions_mysql-0.9]# make && make install
安装完成后将UDFs加载到MySQL中:
- mysql> show variables like "%plugin%";
- +---------------+-----------------------------------+
- | Variable_name | Value |
- +---------------+-----------------------------------+
- | plugin_dir | /usr/local/mysql/lib/mysql/plugin |
- +---------------+-----------------------------------+
- 1 row in set (0.00 sec)
- [root@sunss ~]# find / -name "libmemcached_functions_mysql.so"
- /usr/local/mysql/lib/libmemcached_functions_mysql.so
- /root/memcached_functions_mysql-0.9/src/.libs/libmemcached_functions_mysql.so
- You have new mail in /var/spool/mail/root
- [root@sunss ~]# cp /usr/local/mysql/lib/libmemcached_functions_mysql.so /usr/local/mysql/lib/mysql/plugin/
- [root@sunss ~]# cd memcached_functions_mysql-0.9/
- [root@sunss ~]#cd sql/
- mysql> source install_functions.sql;
查看各种版本:
- mysql> select memc_udf_version();
- +--------------------+
- | memc_udf_version() |
- +--------------------+
- | 0.9 |
- +--------------------+
- 1 row in set (0.00 sec)
- mysql> select memc_libmemcached_version();
- +-----------------------------+
- | memc_libmemcached_version() |
- +-----------------------------+
- | 0.34 |
- +-----------------------------+
- 1 row in set (0.00 sec)
- mysql>
遇到问题:
- No package 'libmemcached' found
- Consider adjusting the PKG_CONFIG_PATH environment variable if you
- installed software in a non-standard prefix.
- Alternatively, you may set the environment variables DEPS_CFLAGS
- and DEPS_LIBS to avoid the need to call pkg-config.
- See the pkg-config man page for more details.
解决办法:
- [root@sunss24 memcached_functions_mysql-0.9]# whereis pkgconfig
- [root@sunss24 memcached_functions_mysql-0.9]# export
- PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig






