UDFs是User Defined Functions的缩写,表示
MySQL的用户定义函数,应用程序可以利用这些函数从MySQL 5.0以上版本的
数据库中访问Memcached写入或者获取的数据。
此外,MySQL从5.1版本开始支持触发器,从而可以在触发器中使用UDFs直接更新Mcmcached的内容,这种方式降低了应用程序设计和编写的复杂性。
安装UDFs需要在数据库服务器上安装两个包,分别是libmemcached和memcached_functions_mysql
libmemcached下载地址:https://launchpad.net/libmemcached/
memcached_functions_mysql下载地址:https://launchpad.net/memcached-udfs/+milestones
安装成功后,登录mysql,可以
使用命令查看UDFs:
PS:示例为1.1版本的memcached_functions_mysql结果;不同版本支持的函数不同。
mysql>
select * from mysql.func; +------------------------------+-----+---------------------------------+----------+
| name | ret | dl | type |
+------------------------------+-----+---------------------------------+----------+
| memc_add | 2 | libmemcached_functions_mysql.so | function |
| memc_add_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_servers_set | 2 | libmemcached_functions_mysql.so | function |
| memc_server_count | 2 | libmemcached_functions_mysql.so | function |
| memc_set | 2 | libmemcached_functions_mysql.so | function |
| memc_set_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_cas | 2 | libmemcached_functions_mysql.so | function |
| memc_cas_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_get | 0 | libmemcached_functions_mysql.so | function |
| memc_get_by_key | 0 | libmemcached_functions_mysql.so | function |
| memc_get_cas | 2 | libmemcached_functions_mysql.so | function |
| memc_get_cas_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_delete | 2 | libmemcached_functions_mysql.so | function |
| memc_delete_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_append | 2 | libmemcached_functions_mysql.so | function |
| memc_append_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_prepend | 2 | libmemcached_functions_mysql.so | function |
| memc_prepend_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_increment | 2 | libmemcached_functions_mysql.so | function |
| memc_decrement | 2 | libmemcached_functions_mysql.so | function |
| memc_replace | 2 | libmemcached_functions_mysql.so | function |
| memc_replace_by_key | 2 | libmemcached_functions_mysql.so | function |
| memc_servers_behavior_set | 2 | libmemcached_functions_mysql.so | function |
| memc_servers_behavior_get | 0 | libmemcached_functions_mysql.so | function |
| memc_behavior_set | 2 | libmemcached_functions_mysql.so | function |
| memc_behavior_get | 0 | libmemcached_functions_mysql.so | function |
| memc_list_behaviors | 0 | libmemcached_functions_mysql.so | function |
| memc_list_hash_types | 0 | libmemcached_functions_mysql.so | function |
| memc_list_distribution_types | 0 | libmemcached_functions_mysql.so | function |
| memc_udf_version | 0 | libmemcached_functions_mysql.so | function |
| memc_libmemcached_version | 0 | libmemcached_functions_mysql.so | function |
| memc_stats | 0 | libmemcached_functions_mysql.so | function |
| memc_stat_get_keys | 0 | libmemcached_functions_mysql.so | function |
| memc_stat_get_value | 0 | libmemcached_functions_mysql.so | function |
+------------------------------+-----+---------------------------------+----------+
34 rows in set (0.00 sec)
注意:memcached_functions_mysql在V1.0以前的版本,函数返回值,默认0表示成功,1表示失败;
但在V1.0开始,修改了返回值,0表示失败,1表示成功;
见:
https://launchpad.net/memcached-udfs/+milestone/version-1.0
Changelog
1.0 Thursday, July 30, 2009 12:00:00 EST 2009
* Fixed issue of setting NULLs with user-defined variables (Thanks to
Jean-Jacques Moortgat @ aol dot com !)
* Fixed issue of obtaining a NULL value FROM memcached
* All set functions now return 0 (failure) or 1 (success) * Other cleanups
* More tests