让memcached和mysql更好的工作

这次是Fotolog的经验,传说中比Flickr更大的网站,Fotolog在21台服务器上部署了51个memcached实例,总计有254G缓存空间可用,缓存了多达175G的内容,这个数量比很多网站的数据库都要大的多,原文是A Bunch of Great Strategies for Using Memcached and MySQL Better Together,我这里还是选择性的翻译以及按照我的理解补充,感谢Todd Hoff,总能给我们一些学习的案例,从这里也能看出国外技术的开放态度,不似我们,其实就那么点小九九还藏着掖着,好了,进入正题。

一、关于memcached

还不知道这个?那你去面试的时候要吃亏了,赶紧去官方网站看一下http://www.danga.com/memcached/,另外google一下用法,硬盘总是太慢,把数据存在内存里面吧,如果你只有一台服务器,推荐用一下APC(Facebook在用)或者eaccelerator或者Xcache(国人开发的),这些产品单机效果更好,如果你需要分布式的缓存方案,那么用memcached吧。

二、memcached如何与mysql并肩作战?

通过数据库分片来解决数据库写扩展的问题把数据库分片,部署到不同的服务器上,免得只有一个主服务器,写操作成为瓶颈以及可能有的“单点故障”,一般的数据库分片主要是按照业务来分,尽可能的拆分业务,不相干的都独立起来做成服务也好

前 端mysql和一堆memcached服务器来应付读的问题应用程序首先从memcached中获取数据,获取不到再从数据库中获得并保存在 memcached中,以前看过一篇文章说好的应用95%的数据从memcache的中获得,3%的数据从mysql的query cache中获得,剩下2%才去查表,对比一下你的应用,差距有多远?

通过mysql复制(master-slave)来解决读的问题

首先mysql数据库通过master-slave读写分离,多个slave来应对应用程序读的操作。

三、为什么不用mysql的query cache?

我们都知道mysql有个query cache,可以缓存上次查询的结果,可实际上帮不上太多的忙,下面是mysql quety cache的不足:

只能有一个实例

意味着你能存储内容的上限就是你服务器的可用内存,一台服务器能有多少内存?你又能存多少呢?

只要有写操作,mysql的query cache就失效

只要数据库内容稍有改变,那怕改变的是其他行,mysql的query cache也会失效

mysql的query cache只能缓存数据库数据行

意味着其他内容都不行,比如数组,比如对象,而memcached理论上可以缓存任何内容,甚至文件^_^

时间: 2025-01-14 04:38:48

让memcached和mysql更好的工作的相关文章

《高性能Linux服务器构建实战》——3.4节通过UDFs实现Memcached与MySQL的自动更新

3.4 通过UDFs实现Memcached与MySQL的自动更新 3.4.1 UDFs使用简介 UDFs是User Defined Functions的缩写,表示MySQL的用户定义函数,应用程序可以利用这些函数从MySQL 5.0以上版本的数据库中访问Memcached写入或者获取的数据.此外,MySQL从5.1版本开始支持触发器,从而可以在触发器中使用UDFs直接更新Memcached的内容,这种方式降低了应用程序设计和编写的复杂性.下面简单介绍UDFs的安装和使用. 安装UDFs需要在数据

memcached和mysql的同步问题

问题描述 memcached和mysql的同步问题 memcached和mysql memcached和mysql都是服务器,怎样做让memcached和mysql进行同步呢,应该在操作的时候怎样编码呢, 虽然有个memcached_function_mysql.,但是怎么安装不上呢,这个又是怎么回事呢?我是新手 希望的到大家的指点.. 解决方案 http://www.cnblogs.com/goody9807/p/4277749.html 解决方案二: mysql中建立触发器 有数据变化就调用

勤奋学习只为更好的工作

--记国网公司农电调考江西省第一名获得者张宙平 张宙平,高高的个头,削瘦的身材,戴着一副近视眼镜,给人印象最深的就是他那种儒雅的书生气质.然而,就是这个平凡的身影,却惊爆不平凡的成绩:在2007年9月全国电力系统供电所人员调考中,他脱颖而出,取得全国第五名,江西省第一名的好成绩. 张宙平现任星子县供电公司温泉中心供电所副所长.自1998年进入供电公司工作以来,他曾在不同的岗位上工作,在每一个岗位上,他都能以主人翁的姿态积极投身于供电事业当中,业务上精益求精,工作上踏踏实实,以身作则. 尽心服务只

阿里巴巴的员工拥有更大的工作放权和灵活度

6月24日消息,阿里巴巴今日发内部邮件,要求员工使用阿里自己的通讯产品进行业务交流和资料传输,而该做法的原因是保护公司信息. 阿里巴巴集团首席风险官邵晓锋今日发出员工邮件,称公司内部一些看来不经意的产品信息.业务计划传到外界都可能引起市场的轩然大波. "与大多数公司不同,阿里巴巴的员工拥有更大的工作放权和灵活度,掌握很多关键的产品信息.业务计划.客户资料.数据信息.你们所讨论的问题.做的决定.采取的行动,其背后包含的信息极为重要且丰富,不仅关系到阿里巴巴集团自身的业务安全,也牵涉到几亿消费者.上

手机里的App可以帮助你更好地工作

不管你舍得不舍得,年假是一去不复回了,不管你情愿不情愿,开年好好工作都是当下必须做的.收起懒散,全力投入,才会让你的工作更加出色.是否觉得扑面而来的各种工作让你头大?有没有想过手机里的App可以帮助你更好地工作?Yes!千万不要以为形形色色的应用只是让你娱乐的,适当地应用它们,会帮助你提高工作效率哦.不信?请看看笔者推荐的以下几款应用吧. Pomodoro番茄工作法 对着电脑工作时,情不自禁地左点一下QQ,右刷一下微博,工作几分钟就看看http://www.aliyun.com/zixun/ag

图形化管理MySQL更轻松

MySQL是一个真正的多用户.多线程SQL数据库服务器,是目前最流行的开放源码数据库服务器之一.来自MySQL项目的数据显示,目前MySQL用户已经达到400万个.大家熟知的.使用MySQL的Web站点包括Yahoo.Finance.MP3.com.Motorola.NASA.Silicon Graphics和Texas Instruments等. 一般来说,用户以命令行的方式来使用MySQL.很多用户在Windows环境中一直使用图形用户界面(GUI)来操作和管理数据库,对命令行方式可能不习惯

MySQL查询优化器的工作原理

当你提交一个查询的时候,MySQL会分析它,看是否可以做一些优化使处理该查询的速度更快.这一部分将介绍查询优化器是如何工作的.如果你想知道MySQL采用的优化手段,可以查看MySQL参考手册. 当然,MySQL查询优化器也利用了索引,但是它也使用了其它一些信息.例如,如果你提交如下所示的查询,那么无论数据表有多大,MySQL执行它的速度都会非常快: SELECT * FROM tbl_name WHERE 0: 在这个例子中,MySQL查看WHERE子句,认识到没有符合查询条件的数据行,因此根本

memcached 和 mysql 主从环境下php开发代码详解_php技巧

复制代码 代码如下: <?php $memcached = array( //用memcached 的 多 进程模拟 多台memcached 服务器 cn en 为 内存服务器名 'cn'=>array('192.168.254.144',11211), 'en'=>array('192.168.254.144',11212) ); $mysql = array( // mysql 的主从 我的环境是 : xp 主 linux 从 mysql 5 php5 'master'=>ar

memcached 做mysql主从备份方法

 一般的大站通常做法是    拿着内存当数据库教程来用(memcached).     和很好的读  写分离  备份机制 (mysql教程 的主从) 在这样的环境下我们怎么进行PHP开发呢.  本人不太会讲话.所以还是帖代码吧.  刚在linux  的 VIM  里写的一个  demo    调试通过.  也同时希望大家拍砖 ,  使用PHP5  写的. PHP4写出来怕大家说我落后了 <?php教程 $memcached = array(  //用memcached 的 多 进程模拟 多台me