用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中使用Oracle数据库(2)
Oct 09 PHP
PHP实现定时生成HTML网站首页实例代码
Nov 20 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
php内存缓存实现方法
Jan 24 PHP
php实现在站点里面添加邮件发送的功能
Apr 28 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
Thinkphp框架中D方法与M方法的区别
Dec 23 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
Dec 28 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
一文看懂PHP进程管理器php-fpm
Jun 01 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 年月日的三级联动实例代码
2017/05/24 PHP
浅谈Yii乐观锁的使用及原理
2017/07/25 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
CSS3,HTML5和jQuery搜索框集锦
2014/12/02 Javascript
jQuery实现动态删除LI的方法
2017/05/30 jQuery
vue params、query传参使用详解
2017/09/12 Javascript
vue template中slot-scope/scope的使用方法
2018/09/06 Javascript
vue-router的HTML5 History 模式设置
2018/09/08 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
浅谈vue websocket nodeJS 进行实时通信踩到的坑
2020/09/22 NodeJs
vue+Element-ui实现分页效果
2020/11/15 Javascript
Python求导数的方法
2015/05/09 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
python实现超市管理系统(后台管理)
2019/10/25 Python
用Python画小女孩放风筝的示例
2019/11/23 Python
logging level级别介绍
2020/02/21 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
教育专业个人求职信
2013/12/02 职场文书
党的群众路线学习材料
2014/05/16 职场文书
教师节宣传方案
2014/05/23 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
联村联户简报
2015/07/21 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers