<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[[转贴]MySQL触发器自动更新memcache]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 24 Jan 2010 06:17:52 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	今天看了MYSQL官方网站，发现这个UDFs，UDFs 是 User Defined Functions 的缩写，指 Mysql 的用户定义函数，应用可以通过使用这些函数从 Mysql5.0 以上版本的数据库中访问 Memcached 写入或者获得数据。此外，从 Mysql5.1 开始支持触发器，这样就可以在触发器中使用 UDFs 直接更新 Memcached 的内容，减轻了应用程序设计和编写的复杂性。下面我们简要介绍 UDFs 的安装和使用：<br/>　　1、安装Libmemcached（memcached的客户端C API）<br/>　　下载地址：http://download.tangent.org/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # ./configure –prefix=/usr&nbsp;&nbsp;&amp;&amp; make &amp;&amp; make install<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意：请安装在/usr下，不然后面安装memcached_functions_mysql的时候找不到，还要指定PKG_CONFIG_PATH,麻烦。<br/><br/>　　2、安装memcached_functions_mysql<br/>　　下载地址：http://download.tangent.org/<br/><br/>　　# ./configure –with-mysql=/usr/local/mysql/bin/mysql_config<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;安装完成之后，需要将 libmemcached_functions_mysql 的库文件拷贝到 mysql/lib 目录下的 plugin 目录中。<br/>　　# cp /usr/local/lib/libmemcached_functions_mysql* /usr/local/mysql/lib/plugin/.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# shell&gt; mysql &lt;sql/install_functions.sql<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;3、触发器实现<br/>　　定义memcached服务器<br/>　　mysql&gt; SELECT memc_servers_set(’192.168.0.1:11211,192.168.0.2:11211′);<br/>　　创建测试表：<br/>　　mysql&gt; create table test3 (<br/>　　 　 -&gt; id int(3) not null,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt; name varchar(64) not null default ”,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt; primary key (id)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&gt; );<br/>&nbsp;&nbsp;&nbsp;&nbsp;创建触发器<br/>　　mysql&gt;DELIMITER &#124;<br/>　　&nbsp;&nbsp;&nbsp;&nbsp;-&gt;CREATE TRIGGER test3_insert<br/>　　&nbsp;&nbsp;&nbsp;&nbsp;-&gt;BEFORE INSERT ON test3<br/>　　&nbsp;&nbsp;&nbsp;&nbsp;-&gt;FOR EACH ROW BEGIN<br/>　　&nbsp;&nbsp;&nbsp;&nbsp;-&gt;SET @mm = memc_set(concat(’id:’,NEW.id), NEW.name);<br/>　　&nbsp;&nbsp;&nbsp;&nbsp;-&gt;END &#124;<br/><br/>　　可以参见官方网站：http://dev.mysql.com/doc/refman/5.1/en/ha-memcached-interfaces-mysqludf.html<br/><br/>后记：我觉得它的应用场景应该是写操作不太频繁，但查询量非常大的网站，memcache不超时的缓存数据库的数据，当数据库发生更改的时候，利用 mysql的insert,update,delete触发器来更改memcached服务器的数据。但mysql的操作数据类型不支持数组，memc_set应该也不支持对象或者数组等数据类型。实现起来有点难度。<br/>续记：MYSQL UDF OF JSON<br/>　　基于以上的试用感想，我认为应该有UDF可以将数据行转成json格式的数据，这样就真的可以实现前端不用访问数据库的想法了，GOOGLE真是个好东西，google后还真找到了：UDF Repository for MySQL，外国人真是有开源精神：），这是一个MYSQL　UDF库的网站，我在里面找到for json的udf。<br/><br/>下载地址：http://www.mysqludf.org/lib_mysqludf_json/lib_mysqludf_json_0.0.2.tar.gz<br/>安装：<br/> # mkdir udf_of_json<br/> # cd udf_of_json<br/> # wget http://www.mysqludf.org/lib_mysqludf_json/lib_mysqludf_json_0.0.2.tar.gz<br/> # tar zxvf lib_mysqludf_json_0.0.2.tar.gz<br/> # cp ./lib_mysqludf_json.so /usr/local/mysql/lib/plugin/.<br/> # mysql -u root<br/> mysql&gt; source ./ lib_mysqludf_json.sql<br/><br/>测试： <br/>DELIMITER &#124;&#124;<br/> CREATE TRIGGER user_insert<br/> AFTER INSERT ON users<br/> FOR EACH ROW BEGIN<br/> SELECT json_array(username,user_type,real_name,password,active,last_login,description) into @user_info FROM users where user_id=NEW.user_id;<br/> SET @mm= memc_set(concat(’user_info_’,NEW.user_id), @user_info);<br/> END &#124;&#124;<br/><br/>它还支持中文真是让人很欣喜，但不支持多行集，如果我用存储过程或者自定义函数自己写一个呢。研究中。。。。<br/><br/><br/>继续参看：<br/>http://www.jackxiang.com/post/2494/
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [转贴]MySQL触发器自动更新memcache]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>