&">nbsp; UDFs是User Defined Functions的缩写,表示MySQL的用户定义函数,应用程序可以利用这些函数从MySQL 5.0以上版本的数据库中访问Memcached写入或者获取的数据。此外,MySQL从5.1版本开始支持触发器,从而可以在触发器中使用UDFs直接更新Mcmcached的内容,这种方式降低了8639.html">应用程序设计和编写的复杂性。下面简单介绍UDFs的安装和使用。
安装UDFs需要在数据库服务器上安装两个包,分别是libmemcached和memcached_functions_mysql,这两个包都可似从http://download.tangent.org/下载。安装过程如下。
1)需要的软件有memcached-1.2.6、libevent-l.4.4-stable,这些软件的安装非常简单,因此不做说明。
libmemcached-1.0.17的安装步骤如下:
[root@localhost software]# wget http://download.tangent.org/libmemcached-1.0.17.tar.gz
--2013-08-19 10:08:10-- http://download.tangent.org/libmemcached-1.0.17.tar.gz
正在解析主机 download.tangent.org... 96.126.115.120
正在连接 download.tangent.org|96.126.115.120|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1023177 (999K) [application/x-gzip]
正在保存至: “libmemcached-1.0.17.tar.gz”
100%[===========================================>] 1,023,177 329K/s in 3.0s
2013-08-19 10:08:14 (329 KB/s) - 已保存 “libmemcached-1.0.17.tar.gz” [1023177/1023177])
[root@localhost software]# tar zxvf libmemcached-1.0.17.tar.gz
[root@localhost software]# cd libmemcached-1.0.17
[root@localhost libmemcached-1.0.17]# ./configure --prefix=/usr/local/libmemcached37 --with-memcached
[root@localhost libmemcached-1.0.17]# make
[root@localhost libmemcached-1.0.17]# make install
2)安装mysq15.1,也不做说明。
3)安装memcached_functions_mysql.基本步骤如下:
[root@localhost software]# wget http://patg.net/downloads/memcached_functions_mysql-1.1.tar.gz
--2013-08-19 10:02:37-- http://patg.net/downloads/memcached_functions_mysql-1.1.tar.gz
正在解析主机 patg.net... 69.24.6.115
正在连接 patg.net|69.24.6.115|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:321872 (314K) [application/x-gzip]
正在保存至: “memcached_functions_mysql-1.1.tar.gz”
100%[=================>] 321,872 29.2K/s in 21s
2013-08-19 10:03:00 (14.8 KB/s) - 已保存 “memcached_functions_mysql-1.1.tar.gz” [321872/321872])
[root@localhost software]# tar zxvf memcached_functions_mysql-1.1.tar.gz
[root@localhost software]# cd memcached_functions_mysql-1.1
[root@localhost memcached_functions_mysql-1.1]# ./configure --prefix=/usr/local/memcache_mysql--with-mysql=/usr/local/webserver/mysql/bin/mysql_config --with-libmemcached=/usr/local/libmemcached37
[root@localhost memcached_functions_mysql-1.1]# make
[root@localhost memcached_functions_mysql-1.1]# make install
首次需要使用CREATE FUNCTION来初始化用户定义函数。有两种方法可以初始化所有MySQL提供的用户定义函数:
第一种方法是在MySQL的SQL命令行中执行memcached_functions_mysql源码目录下的sql/install_functions.sql。第二种方法是运行memcached_functions_mysql源码目录下的utils/install.pl这个Pcrl脚本,把memcache function作为UDFs加入MySQL。
4)执行下面SQL命令,查看安装是否成功。
mysql>select name, dl from mysql.func;
+-------------------------------+---------------------------------+
| name | dl |
+-------------------------------+---------------------------------+
| memc_add | libmemcached_functions_mysql.so |
| memc_add_by_key | libmemcached_functions_mysql.so |
| memc_servers_set | libmemcached_functions_mysql.so |
| memc_servers_count | libmemcached_functions_mysql.so |
| memc_set | libmemcached_functions_mysql.so |
| memc_set_by_key | libmemcached_functions_mysql.so |
| memc_cas | libmemcached_functions_mysql.so |
| memc_cas_by_key | libmemcached_functions_mysql.so |
| memc_get | libmemcached_functions_mysql.so |
| memc_get_by_key | libmemcached_functions_mysql.so |
| memc_delete | libmemcached_functions_mysql.so |
| memc_delete_by_key | libmemcached_functions_mysql.so |
| memc_append | libmemcached_functions_mysql.so |
| memc_append_by_key | libmemcached_functions_mysql.so |
| memc_prepend | libmemcached_functions_mysql.so |
| memc_prepend_by_key | libmemcached_functions_mysql.so |
| memc_increment | libmemcached_functions_mysql.so |
| memc_decrement | libmemcached_functions_mysql.so |
| memc_replace | libmemcached_functions_mysql.so |
| memc_replace_by_key | libmemcached_functions_mysql.so |
| memc_servers_behavior_set | libmemcached_functions_mysql.so |
| memc_servers_behavior_get | libmemcached_functions_mysql.so |
| memc_behavior_set | libmemcached_functions_mysql.so |
| memc_behavior_get | libmemcached_functions_mysql.so |
| memc_list_behaviors | libmemcached_functions_mysql.so |
| memc_list_hase_types | libmemcached_functions_mysql.so |
| memc_list_distribution_types | libmemcached_functions_mysql.so |
| memc_udf_version | libmemcached_functions_mysql.so |
| memc_libmemcached_version | libmemcached_functions_mysql.so |
| memc_stats | libmemcached_functions_mysql.so |
| memc_stats_get_keys | libmemcached_functions_mysql.so |
| memc_stats_get_value | libmemcached_functions_mysql.so |
+-------------------------------+---------------------------------+
32 rows in set (0.00 sec)