用mysql触发器自动更新memcache的实现代码


Posted in PHP onOctober 11, 2009

mysql 5.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的源码目录,有兴趣可以试试

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.ooso.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');
PHP 相关文章推荐
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
php处理json格式数据经典案例总结
May 19 PHP
PHP PDOStatement::fetch讲解
Jan 31 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
PHP面向对象程序设计中的self、static、parent关键字用法分析
Aug 14 PHP
thinkphp诸多限制条件下如何getshell详解
Dec 09 PHP
php去除deprecated的实例方法
Nov 17 PHP
基于OpenCV的PHP图像人脸识别技术
Oct 11 #PHP
PHP 身份验证方面的函数
Oct 11 #PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
Oct 11 #PHP
关于页面优化和伪静态
Oct 11 #PHP
PHP iconv 函数转gb2312的bug解决方法
Oct 11 #PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 #PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 #PHP
You might like
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
如何让CI框架支持service层
2014/10/29 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
javascript中关于&& 和 || 表达式的小技巧分享
2015/04/10 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
js贪吃蛇游戏实现思路和源码
2016/04/14 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
修改Vue打包后的默认文件名操作
2020/08/12 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python中逗号的三种作用实例分析
2015/06/08 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
python训练数据时打乱训练数据与标签的两种方法小结
2018/11/08 Python
python对视频画框标记后保存的方法
2018/12/07 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
通信工程专业女生个人求职信
2013/09/21 职场文书
涉外经济法专业毕业生推荐信
2013/11/24 职场文书
师范毕业生自我鉴定
2014/01/15 职场文书
聊城大学毕业生自荐书
2014/02/01 职场文书
社区春季防火方案
2014/06/02 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
2015年小学图书室工作总结
2015/05/18 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS