用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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
PHP脚本数据库功能详解(上)
Oct 09 PHP
php 数组的合并、拆分、区别取值函数集
Feb 15 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php在线解压ZIP文件的方法
Dec 30 PHP
Smarty foreach控制循环次数的一些方法
Jul 01 PHP
Symfony生成二维码的方法
Feb 04 PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
laravel框架中控制器的创建和使用方法分析
Nov 23 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
PHP 实现 WebSocket 协议原理与应用详解
Apr 22 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
PHP SESSION的增加、删除、修改、查看操作
2015/03/20 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
js日历功能对象
2012/01/12 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
提高jQuery性能优化的技巧
2015/08/03 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
NodeJs下的测试框架Mocha的简单介绍
2017/02/22 NodeJs
前端MVVM框架解析之双向绑定
2018/01/24 Javascript
代码详解JS操作剪贴板
2018/02/11 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
Python使用xlwt模块操作Excel的方法详解
2018/03/27 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
python 二维数组90度旋转的方法
2019/01/28 Python
python实现爬山算法的思路详解
2019/04/09 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
大学生毕业自我鉴定
2013/11/06 职场文书
促销活动策划方案
2014/01/12 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
设计师求职信模板
2014/05/06 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
中秋晚会致辞
2015/07/31 职场文书
使用pycharm运行flask应用程序的详细教程
2021/06/07 Python