用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图片上传类带图片显示
Nov 25 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
php实现用手机关闭计算机(电脑)的方法
Apr 22 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
Apr 11 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
PHP文件管理之实现网盘及压缩包的功能操作
Sep 20 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
Feb 06 PHP
postman的安装与使用方法(模拟Get和Post请求)
Aug 06 PHP
php7性能提升的原因详解
Oct 13 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
雄兵连:天使彦天使彦为爱折翼,彦和炙心同时念动的誓言!
2020/03/02 国漫
php下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
php实现的双向队列类实例
2014/09/24 PHP
PHP的简单跳转提示的实现详解
2019/03/14 PHP
js删除所有的cookie的代码
2010/11/25 Javascript
js查错流程归纳
2012/05/04 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
2018/05/13 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
Vue环境搭建+VSCode+Win10的详细教程
2020/08/19 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
openlayers实现地图测距测面
2020/09/25 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
python之import机制详解
2014/07/03 Python
在Python中使用cookielib和urllib2配合PyQuery抓取网页信息
2015/04/25 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python3实现zabbix告警推送钉钉的示例
2019/02/20 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
解决Python对齐文本字符串问题
2019/08/28 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
Mac中PyCharm配置Anaconda环境的方法
2020/03/04 Python
解决pycharm不能自动补全第三方库的函数和属性问题
2020/03/12 Python
浅谈Html5移动端ios/Android兼容性总结
2018/06/01 HTML / CSS
小学校长汇报材料
2014/08/20 职场文书
Python基础知识之变量的详解
2021/04/14 Python
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫