Maison > base de données > tutoriel mysql > 通过MySQL的UDFs和Trigger操作Memcached

通过MySQL的UDFs和Trigger操作Memcached

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-06-07 16:07:46
original
935 Les gens l'ont consulté

通过MySQL的UDFs和Trigger操作MemcachedUDFs是UserDefinedFunctions的缩写,表示MySQL的用户定义函数,应用程序可以利用这些函数从MySQL5.0以上版本的数据库中访

通过MySQL的UDFs和Trigger操作Memcached


UDFs是User Defined Functions的缩写,表示MySQL的用户定义函数,应用程序可以利用这些函数从MySQL 5.0以上版本的数据库中访问Memcached写入或者获取的数据。此外,MySQL从5.1版本开始支持触发器,从而可以在触发器中使用UDFs直接更新Memcached的内容,这种方式降低了应用程序设计和编写的复杂性。下面简单介绍UDFs的安装和使用。

 

UDFs安装



安装UDFs,需要依次安装MySQL、libevent、memcached、libmemcached、memcached_functions_sql。

 

1. 安装mysql-5.6.24.tar.gz

参照之前的博文《InnoDB memcached插件部署》中MySQL安装部分。

 

2. 安装libevent-2.0.22-stable.tar.gz和安装memcached-1.4.22.tar.gz

参照之前的博文《Memcached 1.4.22安装和配置》。

 

3. 安装libmemcached-0.34.tar.gz

memcached functions for mysql官网发布的1.1版本是09年的,只兼容libmemcached0.34版本。

mkdir -p /usr/local/libmemcached wget https://launchpad.net/libmemcached/1.0/0.34/+download/libmemcached-0.34.tar.gz tar zxvf libmemcached-0.34.tar.gz cd libmemcached-0.34 ./configure --prefix=/usr/local/libmemcached --with-memcached=/usr/local/bin/memcached make make install

 

4. 安装memcached_functions_mysql

wget https://launchpad.net/memcached-udfs/trunk/1.1/+download/memcached_functions_mysql-1.1.tar.gz tar xvf memcached_functions_mysql-1.1.tar.gz cd memcached_functions_mysql-1.1 ./configure --prefix=/usr/local/memcache_mysql --with-mysql=/usr/local/mysql/bin/mysql_config --with-libmemcached=/usr/local/libmemcached make make install

 

5. 拷贝lib文件到mysql的plugin下面

cp /usr/local/memcache_mysql/lib/libmemcached_functions* /usr/local/mysql/lib/plugin

 

6. 配置动态链接库

echo "/usr/local/lib" >> /etc/ld.so.conf ldconfig

 

7. 添加memcache UDF 函数

mysql  

备注:

首次需要使用CREATE FUNCTION来初始化用户定义函数。有两种方法可以初始化所有MySQL提供的用户定义函数:

第一种方法是在MySQL的SQL命令行中执行memcached_functions_mysql源码目录下的sql/install_functions.sql。第二种方法是运行memcached_functions_mysql源码目录下的utils/install.pl这个Perl脚本,把memcache function作为UDFs加入MySQL。

 

8. 执行下面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_server_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_get_cas | libmemcached_functions_mysql.so | | memc_get_cas_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_hash_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_stat_get_keys | libmemcached_functions_mysql.so | | memc_stat_get_value | libmemcached_functions_mysql.so | +------------------------------+---------------------------------+ 34 rows in set (0.00 sec)

 

使用Trigger操作Memcached



1. 创建两张表

新建两张表:urls和results,更新urls表中的内容,使系统自动更新Memcached的内容。results用来记录更新Memcached失败的记录。

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal