欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【教你使用MySQL触发器自动更新memcache】,下面是详细的分享!
教你使用MySQL触发器自动更新memcache
mysql5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新。简单记录一下安装测试步骤。
安装步骤
安装memcached,这个步骤很简单,随处可见
安装mysql server 5.1RC,安装办法也很大众,不废话了
编译libmemcached,解压后安装即可./configure; make; make install
编译Memcached Functions for MySQL,在http://download.tangent.org/找一个最新的版本下载就是,./configure --with-mysql=/usr/local/mysql/bin/mysql_config --libdir=/usr/local/mysql/lib/mysql/
make
make install
接下来有两个办法让Memcached Functions for MySQL在mysql中生效
在mysql的shell中执行memcached_functions_mysql源码目录下的sql/install_functions.sql,这会把memcache function作为UDF加入mysql
运行memcached_functions_mysql源码目录下的utils/install.pl,这是一个perl脚本,作用同上一条
测试memcache function
以下测试脚本摘自memcached_functions_mysql的源码目录,有兴趣可以试试
| 以下为引用的内容:
PLAIN TEXTCODE: drop table if exists urls; create table urls ( id int(3) not null, url varchar(64) not null default '', primary key (id) ); select memc_servers_set('localhost:11211'); select memc_set('urls:sequence', 0); DELIMITER | DROP TRIGGER IF EXISTS url_mem_insert; CREATE TRIGGER url_mem_insert BEFORE INSERT ON urls FOR EACH ROW BEGIN SET NEW.id=memc_increment('urls:sequence'); SET @mm=memc_set(concat('urls:',NEW.id), NEW.url); END | DELIMITER ; insert into urls (url) values ('http://google.com'); insert into urls (url) values ('http://www.ooso.net/index.php'); insert into urls (url) values ('http://www.devdao.net/'); insert into urls (url) values ('http://slashdot.org'); insert into urls (url) values ('http://mysql.com'); select * from urls; select memc_get('urls:1'); select memc_get('urls:2'); select memc_get('urls:3'); select memc_get('urls:4'); select memc_get('urls:5'); |
以上所分享的是关于教你使用MySQL触发器自动更新memcache,下面是编辑为你推荐的有价值的用户互动:
相关问题:mysql触发器。update的时候能不能只更新当前update...
答:你的更新语句没加过滤条件?要不然怎么会全更新呢? update table set a=b+c where id = new.id >>详细
相关问题:MySQL如何创建每天0点自动运行的触发器?
答:1、触发器是update后激发的,我想你需要的是mysql计划任务。 2、计划任务状态 show variables like '%event%'; 3、使用下列的任意一句开启计划任务: SET GLOBAL event_scheduler = ON; SET @@global.event_scheduler = ON; SET GLOBAL event_sc... >>详细
相关问题:帮忙写一个 mysql update 触发器
答:1 DROP TRIGGER IF EXISTS t_update_on_st_shop_info; 2 CREATE TRIGGER t_update_on_st_shop_info 3 UPDATE ON st_shop_info 4 FOR EACH ROW 5 BEGIN 6 UPDATE st_shop_info SET open_flg=1 where shop_indate>0; 7 INSERT INTO st_shop(shop_i... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
