MySql UDF介绍
UDF是User Defined Function的缩写,指 Mysql 的用户定义函数,应用可以通过使用这些函数从 Mysql5.0 以上版本的数据库中访问 Memcached 服务以写入或者获得数据。此外,从 Mysql5.1 开始支持触发器,这样就可以在触发器中使用 UDF 直接更新 Memcached 的内容,减轻了应用程序设计和编写的复杂性。下面我们简要介绍 UDF 的安装和使用。
UDF安装
UDF 的安装,需要在数据库服务器上安装两个包,分别是 libmemcached 和 memcached_functions_mysql ,都可以从
[url]http://download.tangent.org/[/url] 下载。
Libmemcached 包的安装比较简单,只要从网上下载最新的包解压后安装即可:
memcached_functions_mysql 安装的时候需要指定 Mysql 服务的路径,其他并没有什么特别的地方:
安装过程中根据安装版本和一些依赖库版本的不同会报一些错误,上网查查很容易解决。
安装完成之后,需要将 libmemcached_functions_mysql 的库文件拷贝到 mysql/lib 目录下的 plugin 目录中。
Libmemcached 包的安装比较简单,只要从网上下载最新的包解压后安装即可:
- cd libmemcached
- ./configure
- make
- make install
- cd memcached_functions_mysql
- ./configure --with-mysql=/usr/local/mysql/bin/mysql_config
- make
- make install
安装完成之后,需要将 libmemcached_functions_mysql 的库文件拷贝到 mysql/lib 目录下的 plugin 目录中。
- cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql/lib/plugin/.
测试
查看所有memcached_functions_mysql的方法:
- select * from mysql.func;
- SELECT memc_servers_set('192.168.0.1:11211');
创建测试表:
- create table test(
- id int(3) not null,
- name varchar(64) not null default '',
- primary key (id)
- );
给自增变量赋初值:
- select memc_set('id:sequence', 0);
- CREATE TRIGGER test_insert
- BEFORE INSERT ON test
- FOR EACH ROW BEGIN
- SET NEW.id= memc_increment('id:sequence');
- SET @mm= memc_set(concat('id:',NEW.id), NEW.name);
- END;
插入记录:
- insert into test (name) values ('memcached');
- insert into test (name) values ('test');
- insert into test (name) values ('mysql');
- select memc_get('id:1');
- select memc_get('id:2');
- select memc_get('id:3');