用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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
pw的一个放后门的方法分析
Oct 08 PHP
php $_SERVER当前完整url的写法
Nov 12 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php生成数字字母的验证码图片
Jul 14 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
Dec 07 PHP
PHP中CheckBox多选框上传失败的代码写法
Feb 13 PHP
php判断文件上传图片格式的实例详解
Sep 30 PHP
thinkPHP框架实现多表查询的方法
Jun 14 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之PHP语法学习笔记1
2006/12/17 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php比较两个绝对时间的大小
2014/01/31 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
2014/08/19 PHP
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
2016/03/31 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
利用jqgrid实现上移下移单元格功能
2018/11/07 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Vue表单绑定的实例代码(单选按钮,选择框(单选时,多选时,用 v-for 渲染的动态选项)
2019/05/13 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
python人人网登录应用实例
2014/09/26 Python
python如何读写json数据
2018/03/21 Python
详解python中*号的用法
2019/10/21 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
去除python中的字符串空格的简单方法
2020/12/22 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
大学生作弊检讨书
2014/02/19 职场文书
白莲教口号
2014/06/18 职场文书
班风口号
2014/06/18 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
2015年组织部工作总结
2015/04/03 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书
使用CSS设置滚动条样式
2022/01/18 HTML / CSS
实例详解Python的进程,线程和协程
2022/03/13 Python
nginx设置资源请求目录的方式详解
2022/05/30 Servers