用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新手上路(十二)
Oct 09 PHP
在PHP里得到前天和昨天的日期的代码
Aug 16 PHP
深入apache配置文件httpd.conf的部分参数说明
Jun 28 PHP
PHP防盗链代码实例
Aug 27 PHP
浅谈PDO的rowCount函数
Jun 18 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 PHP
PHP内置函数生成随机数实例
Jan 18 PHP
PHP经典设计模式之依赖注入定义与用法详解
May 21 PHP
thinkPHP5框架实现多数据库连接,跨数据连接查询操作示例
May 29 PHP
PHP命名空间用法实例分析
Sep 04 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 PHP
如何在PHP中读写文件
Sep 07 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获取apk包信息的方法
2014/08/15 PHP
PHP中比较时间大小实例
2014/08/21 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
composer.lock文件的作用
2016/02/03 PHP
nginx 设置多个站跨域
2021/03/09 Servers
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
AngularJS 中文API参考手册
2016/07/28 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
2021/01/06 Javascript
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
Python编程中的异常处理教程
2015/08/21 Python
Python命令行解析模块详解
2018/02/01 Python
使用EduBlock轻松学习Python编程
2018/10/08 Python
在Python中调用Ping命令,批量IP的方法
2019/01/26 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
Python线程threading模块用法详解
2020/02/26 Python
python3.6中anaconda安装sklearn踩坑实录
2020/07/28 Python
澳洲在线厨具商店:Kitchen Style
2018/05/05 全球购物
初中三好学生事迹材料
2014/01/13 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
总账会计岗位职责
2014/03/13 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
政治学求职信
2014/06/03 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
大型公益活动策划方案
2014/08/20 职场文书
学校交通安全责任书
2014/08/25 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
Qt自定义Plot实现曲线绘制的详细过程
2021/11/02 Python