您当前的位置: 首页 > 数据库教程 > MySQL教程 > 用mysql触发器自动同步更新memcache的方法

用mysql触发器自动同步更新memcache的方法

作者:不详 来源:网络 发布时间: 2011-10-06 14:15 点击:
用mysql触发器自动同步更新memcache的方法: 大家都知道从内存中读取数据要不从库中取数据要快的多,所以用memcache可以大大提高页面的执行速度,但是memcache中的数据也是从数据库中得到的,这时如果数据库中的数据更新了那么memcache中的数据还是旧的数据,这样就不能达到

用mysql触发器自动同步更新memcache的方法

  用mysql触发器自动同步更新memcache的方法:
  
  大家都知道从内存中读取数据要不从库中取数据要快的多,所以用memcache可以大大提高页面的执行速度,但是memcache中的数据也是从数据库中得到的,这时如果数据库中的数据更新了那么memcache中的数据还是旧的数据,这样就不能达到实时的效果,下面介绍一种方法解决这个问题:
  
  从mysql5.1支持触发器以及自定义函数接口(UDF)的特性,如果配合libmemcache以及Memcached Functions for MySQL,就能够实现memcache的自动更新。简单记录一下安装测试步骤。
  
  安装步骤
  
  安装memcached,这个步骤很简单,随处可见
  
  安装mysql server5.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://www.phpzixue.cn');
  
  insert into urls(url)values('http://phpzixue.cn');
  
  insert into urls(url)values('http://www.phpzixue.cn');
  
  insert into urls(url)values('http://phpzixue.cn');
  
  insert into urls(url)values('http://www.phpzixue.cn');
  
  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');

分享到:
本文"用mysql触发器自动同步更新memcache的方法"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4