用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 相关文章推荐
PHP无敌近乎加密方式!
Jul 17 PHP
PHP开发不能违背的安全规则 过滤用户输入
May 01 PHP
使用php判断网页是否gzip压缩
Jun 25 PHP
php动态生成函数示例
Mar 21 PHP
php简单操作mysql数据库的类
Apr 16 PHP
php bootstrap实现简单登录
Mar 08 PHP
PHP读取大文件的多种方法介绍
Apr 04 PHP
php文件上传后端处理小技巧
May 22 PHP
Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例
Jul 07 PHP
PHP5.6新增加的可变函数参数用法分析
Aug 25 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
Laravel中10个有用的用法小结
May 06 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上的memcache和memcached两个pecl库
2010/03/29 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
javascript iframe内的函数调用实现方法
2009/07/19 Javascript
JavaScript版DateAdd和DateDiff函数代码
2012/03/01 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
js操作输入框提示信息且响应鼠标事件
2014/03/25 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
JS代码实现页面切换效果
2021/01/10 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
python中for语句简单遍历数据的方法
2015/05/07 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
基于python实现文件加密功能
2020/01/06 Python
pycharm快捷键汇总
2020/02/14 Python
python与pycharm有何区别
2020/07/01 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
找到不普通的东西:Bonanza
2016/10/20 全球购物
Casetify官网:自制专属手机壳、iPad护壳和Apple Watch手表带
2018/05/09 全球购物
Moda Operandi官网:美国奢侈品电商,海淘秀场T台同款
2020/05/26 全球购物
几道数据库的面试题或笔试题
2014/05/31 面试题
高中毕业典礼演讲稿
2014/09/09 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
呼兰河传读书笔记
2015/06/30 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
2019年励志签名:致拼搏路上的自己
2019/10/11 职场文书
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL