`

MySQL UDF同步 memcached

 
阅读更多

MySQL memcached UDFs

UDFs 是 User Defined Functions 的缩写,指 Mysql 的用户定义函数,应用可以通过使用这些函数从 Mysql5.0 以上版本的数据库中访问 Memcached 写入或者获得数据。此外,从 Mysql5.1 开始支持触发器,这样就可以在触发器中使用 UDFs 直接更新 Memcached 的内容,减轻了应用程序设计和编写的复杂性。下面我们简要介绍 UDFs 的安装和使用:
UDFs 的安装,需要在数据库服务器上安装两个包,分别是 libmemcached 和 memcached_functions_mysql ,都可以从[url]http://download.tangent.org/[/url]下载。
Libmemcached 包的安装比较简单,只要从网上下载最新的包解压后安装即可:
cd libmemcached-0.22
configure
make
make install
memcached_functions_mysql 安装的时候需要指定 Mysql 服务的路径,其他并没有什么特别的地方:
cd memcached_functions_mysql-0.4
./configure --with-mysql=/home/mysql/bin/mysql_config
make
make install

ubuntu下安装mysql找不到mysql_config
安装“libmysqlclient15-dev”包就可以了 apt-get install libmysqlclient15-dev
这样就能在mysql的bin目录里找到mysql_config

安装完成之后,需要将 libmemcached_functions_mysql 的库文件拷贝到 mysql/lib 目录下的 plugin 目录中。
cp /usr/local/lib/libmemcached_functions_mysql* /home/mysql/lib/plugin/.
首次使用的时候,需要使用 CREATE FUNCTION 来初始化用户定义函数。有两种方法可以初始化所有提供的用户定义函数,一个是执行 memcached_functions_mysql-0.4/sql 目录下的 install_functions.sql ;另一个是执行 memcached_functions_mysql-0.4/utils/install.pl 。
创建好函数之后,就可以使用这些函数进行 Memcached 的操作,首先需要定义 Memcached 服务器,假设我们测试的环境配置了两个 Memcached 服务器( 192.168.0.1 和 192.168.0.2 ),都使用默认端口 11211 :
mysql> SELECT memc_servers_set('192.168.0.1:11211,192.168.0.2:11211');
配置完成后,就可以进行数据的写入和读取的操作了,下面我们创建了一个临时表用来介绍通过触发器更新 Memcached 的简要步骤:
创建测试表:
mysql> create table test3 (
-> id int(3) not null,
-> name varchar(64) not null default '',
-> primary key (id)
-> );
Query OK, 0 rows affected (0.17 sec)
给自增变量赋初值:
mysql> select memc_set('id:sequence', 0);
+----------------------------+
| memc_set('id:sequence', 0) |
+----------------------------+
| 0 |
+----------------------------+
1 row in set (0.00 sec)
mysql>
在测试表上创建 insert 触发器:
mysql> DELIMITER |
mysql>
mysql> DROP TRIGGER IF EXISTS test3_insert;
-> CREATE TRIGGER test3_insert
-> BEFORE INSERT ON test3
-> FOR EACH ROW BEGIN
-> SET NEW.id= memc_increment('id:sequence');
-> SET @mm= memc_set(concat('id:',NEW.id), NEW.name);
-> END |
Query OK, 0 rows affected, 1 warning (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> DELIMITER ;
mysql>
插入记录:
mysql> insert into test3 (name) values ('memcached');
Query OK, 1 row affected (0.00 sec)
mysql> insert into test3 (name) values ('test');
Query OK, 1 row affected (0.00 sec)
mysql> insert into test3 (name) values ('mysql');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test3;
+----+-----------+
| id | name |
+----+-----------+
| 1 | memcached |
| 2 | test |
| 3 | mysql |
+----+-----------+
3 rows in set (0.00 sec)
访问 Memcached 可以得到已经通过触发器写入缓存的记录:
mysql> select memc_get('id:1');
+------------------+
| memc_get('id:1') |
+------------------+
| memcached |
+------------------+
1 row in set (0.00 sec)
mysql> select memc_get('id:2');
+------------------+
| memc_get('id:2') |
+------------------+
| test |
+------------------+
1 row in set (0.00 sec)
mysql> select memc_get('id:3');
+------------------+
| memc_get('id:3') |
+------------------+
| mysql |
+------------------+
1 row in set (0.00 sec)
分享到:
评论

相关推荐

    lib_mysqludf_sys 的win版本dll库

    "lib_mysqludf_sys 的win版本dll库"这一标题明确指出,我们正在讨论的是一个专为Windows操作系统设计的动态链接库(Dynamic Link Library, DLL)文件,名为lib_mysqludf_sys。DLL是Windows系统中用于封装可重用代码...

    lib_mysqludf_sys

    《MySQL系统命令UDF——lib_mysqludf_sys详解》 MySQL是一种广泛使用的开源关系型数据库管理系统,其功能强大,灵活性高。在实际应用中,有时我们需要执行一些操作系统级别的任务,如读取或写入文件、执行系统命令...

    MYSQL_UDF-5.0.rar_mysql udf_udf_udf mysql

    MySQL UDF(User Defined Function)是MySQL数据库系统中的一种扩展机制,允许用户自定义函数以满足特定的计算或处理需求。这些自定义函数通常用C或C++编写,然后编译为动态链接库(DLL),供MySQL服务器调用。本...

    mysql-udf-http下载

    MySQL UDF (User Defined Function) 是 MySQL 数据库系统中的一种扩展机制,允许用户自定义函数以处理特定的数据操作。在本场景中,`mysql-udf-http` 是一个特殊的 UDF 库,它为 MySQL 提供了通过 HTTP 协议进行数据...

    CentOS 7.5 64下编译好的lib_mysqludf_sys.so

    CentOS 7.5 64位下编译好的lib_mysqludf_sys.so,源文件在https://download.csdn.net/download/shaynerain/10715798,我博客 中有介绍怎么用

    mysqludf库

    MySQL UDF(User Defined Function)库,全称为MySQL用户自定义函数库,是MySQL数据库系统中的一种扩展机制,允许开发者创建自己的函数以增强数据库的功能。`mysqludf库`特别是`lib_mysqludf_sys`是这个领域的一个...

    mysql udf提权文件

    mysql udf提权文件mysql udf提权文件

    lib_mysqludf_json-master.zip

    《MySQL UDF库函数与JSON格式转换详解》 在MySQL数据库管理系统中,有时我们需要将关系型数据转换为JSON格式,以便于数据交换、存储或处理。`lib_mysqludf_json`是一个用户定义的函数(User Defined Function, UDF...

    mysql udf c文件

    MySQL UDF(User Defined Function)是指用户自定义函数,它允许开发者使用C或C++语言扩展MySQL的功能,创建个性化的数据库操作。这个压缩包包含了针对不同操作系统平台的MySQL UDF C语言源码,包括Windows 32位和64...

    mysql-udf-http

    MySQL UDF (User Defined Function) 是 MySQL 数据库系统中一个非常重要的特性,它允许用户自定义函数来扩展数据库的功能。"mysql-udf-http" 是一个特定的 UDF 库,专门为 MySQL 设计,用于在 SQL 查询中直接执行 ...

    mysql-udf-http.c

    mysql-udf-http.c编译此文件之后可使用MySQL中http_post或http_get方法,此处为原文件,需要自行编译,请谨慎下载。备注:如发现此文件编译时缺少文件可自行下载

    MYSQL的UDF开发的资源文件

    MySQL的UDF(User Defined Function)是数据库系统中一个非常重要的特性,它允许用户自定义函数,以扩展MySQL的功能。UDF开发可以帮助开发者根据特定需求定制功能,解决标准SQL无法满足的问题。本资源文件可能包含了...

    如何利用Debugview方式来调试MySQL UDF

    调试MySQL的用户自定义函数(UDF)是一个关键任务,特别是在开发或优化这些函数时。UDF是MySQL中用于扩展数据库功能的动态链接库(DLL),在*Nix系统中称为共享库。通常,调试DLL涉及复杂的步骤,但通过使用Debugview...

    mysql提权udf

    MySQL UDF(User Defined Function)是指用户自定义函数,它允许开发者扩展MySQL数据库系统的功能,创建自己的函数以处理特定的数据操作。在网络安全领域,"mysql提权udf"常常指的是利用UDF进行权限提升的技巧,这...

    MYSQL_UDF 5.0.rar

    MySQL UDF(User Defined Function)是指用户自定义函数,它允许开发者扩展MySQL数据库的功能,创建自己的函数以满足特定的需求。`MYSQL_UDF 5.0.rar`是一个压缩包,包含了MySQL UDF 5.0版本的源代码,供开发者学习...

    mysql-udf-http1.0附教程

    MySQL UDF (User Defined Function) 是 MySQL 数据库系统的一个特性,允许用户自定义函数来扩展其功能。HTTP 1.0 UDF 模块是专为 MySQL 设计的一个插件,它使数据库能够直接与 HTTP 服务器进行交互,执行 HTTP 请求...

    MYSQL的UDF开发的测试程序

    MySQL的UDF(User Defined Function)开发是数据库系统中一种自定义功能扩展机制,允许开发者创建自己的函数以增强MySQL的功能。本测试程序旨在帮助开发者更好地理解和实践UDF的开发过程,以便在实际项目中灵活运用。 ...

    MYSQL提权UDF.dll

    MySQL提权UDF.dll是关于数据库安全领域的一个关键知识点,主要涉及到MySQL服务器的权限提升漏洞利用。UDF(User Defined Function)是MySQL提供的一种机制,允许用户自定义函数以扩展其功能。然而,不当的UDF管理或...

Global site tag (gtag.js) - Google Analytics