用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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
PHP得到mssql的存储过程的输出参数功能实现
Nov 23 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
Apr 08 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
Oct 08 PHP
php出租房数据管理及搜索页面
May 23 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
浅谈php使用curl模拟多线程发送请求
Mar 08 PHP
详解PHP素材图片上传、下载功能
Apr 12 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扩展图文教程
2008/12/12 PHP
php生成随机颜色的方法
2014/11/13 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
静态的动态续篇之来点XML
2006/08/15 Javascript
javascript indexOf函数使用说明
2008/07/03 Javascript
jQuery 学习 几种常用方法
2009/06/11 Javascript
javascript new 需不需要继续使用
2009/07/02 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
javascript获取作用在元素上面的样式属性代码
2012/09/20 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
详解JavaScript之ES5的继承
2020/07/08 Javascript
使用IronPython把Python脚本集成到.NET程序中的教程
2015/03/31 Python
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
python自动化之Ansible的安装教程
2019/06/13 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
文秘专业自荐信
2013/10/14 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
期末自我鉴定
2014/02/02 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
护理专业自我评价
2015/03/11 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL