设为首页 收藏本站
查看: 1143|回复: 0

[经验分享] 用mysql触发器自动更新memcache

[复制链接]

尚未签到

发表于 2015-8-31 10:47:53 | 显示全部楼层 |阅读模式
  不错的一篇文章,用于项目中可以带来更多的便利,按照方法已经调试成功,可以大大提高项目的速度。
  FROM:http://www.ooso.net/index.php/archives/436
  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的源码目录,有兴趣可以试试



1 drop table if exists urls;
2 create table urls (
3   id int(3) not null,
4   url varchar(64) not null default '',
5   primary key (id)
6   );
7 select memc_servers_set('localhost:11211');
8 select memc_set('urls:sequence', 0);
9 DELIMITER
10 DROP TRIGGER IF EXISTS url_mem_insert;
11 CREATE TRIGGER url_mem_insert
12 BEFORE INSERT ON urls
13 FOR EACH ROW BEGIN
14     SET NEW.id= memc_increment('urls:sequence');
15     SET @mm= memc_set(concat('urls:',NEW.id), NEW.url);
16 END
17 DELIMITER ;
18 insert into urls (url) values ('http://google.com');
19 insert into urls (url) values ('http://www.ooso.net/index.php');
20 insert into urls (url) values ('http://www.ooso.net/');
21 insert into urls (url) values ('http://slashdot.org');
22 insert into urls (url) values ('http://mysql.com');
23 select * from urls;
24 select memc_get('urls:1');
25 select memc_get('urls:2');
26 select memc_get('urls:3');
27 select memc_get('urls:4');
28 select memc_get('urls:5');  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106720-1-1.html 上篇帖子: 杂谈二(homebrew+mac+php-fpm)---升级mavericks后导致php-memcache的奔溃,最终全盘崩塌 下篇帖子: web集群时利用memcache来同步session
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表