用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 相关文章推荐
计数器详细设计
Oct 09 PHP
用PHP实现小型站点广告管理(修正版)
Oct 09 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
php中的三元运算符使用说明
Jul 03 PHP
php遍历数组的方法分享
Mar 22 PHP
Zend Framework常用校验器详解
Dec 09 PHP
使用php实现网站验证码功能【推荐】
Feb 09 PHP
php上传excel表格并获取数据
Apr 27 PHP
解决laravel session失效的问题
Oct 14 PHP
laravel数据库查询结果自动转数组修改实例
Feb 27 PHP
PHP实现rar解压读取扩展包小结
Jun 03 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中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
2017/05/05 PHP
JS中产生20位随机数以0-9为例也可以是a-z A-Z
2014/08/01 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
jQuery实现div横向拖拽排序的简单实例
2016/07/13 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
浅谈Node框架接入ELK实践总结
2019/02/22 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
在Python中封装GObject模块进行图形化程序编程的教程
2015/04/14 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
python二进制文件的转译详解
2019/07/03 Python
python字典的遍历3种方法详解
2019/08/10 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
python学习笔记之多进程
2020/08/06 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
什么是方法的重载
2013/06/24 面试题
应届生文秘专业个人自荐信格式
2013/09/21 职场文书
德育标兵事迹材料
2014/08/24 职场文书
群众路线个人整改方案
2014/10/25 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA