合理使用Memcached进行缓存部署
来源:互联网 发布:诺基亚e72i软件下载 编辑:程序博客网 时间:2024/05/01 04:41
原贴:http://www.hlddn.com/diary/122.html
合理使用Memcached进行缓存部署
使用Memcached来缓存数据是目前最有效的方案,使用Memcached能够有效的降低MySQL的查询压力。Memcached工作的原理是将MySQL查询出来的结果存储在内存中,下次查询时可以避开MySQL,以此来降低数据库的压力。但是现在的社区网站中,数据的更新十分频繁,这也给数据缓存带来了不小的难度。如果缓存的更新时间设计不合理,用户不能在数据修改的第一时间看到结果;过于频繁的更新又会丧失缓存的功能。
在万蝶最原始的缓存策略中,我们采用的是:默认数据缓存1天时间,如果期间数据有更新,在更新的同时删除原有的缓存然后重新查询数据库并缓存新数据,如果没有没有更新,缓存数据1天后自动过期,下次查询经过数据库后重新缓存。这样的设计方案保证了数据的及时性,用户的更新在第一时间呈现出来,但是弊端是过于频繁的更新不但没有起到降低数据库压力的要求,同时也给Memcached自身带来一定的压力。
我们向数据库中插入一条数据,之后在需要的时候再从数据库中把这条数据提取出来,我们好像是在刻意给数据库增加压力?如果我们在把数据插入数据库的同时,也把这条数据同时让Memecached保存起来呢?这样,在需要查询的时候我们就可以直接从Memcached中得到这条数据了,查询避开MySQL,这样可以将数据库的压力将到最低。
下一步我们要考虑的就是在数据发生更新时候的操作了,这个时候就该Memcache::replace上场了。在pdx中,更新最频繁的就是用户的网志了,每一次的阅读,每一次的评论,数据都需要更新,但是每次更新的也只是数据中的一部分,所以这种情况下,我们只需要将Memcached中的数据提取出来,将需要更新的部分替换掉,然后使用Memcache::replace替换掉老的缓存,这样我们的需求就基本达到了:查询避开了数据库,有效的减轻了数据库压力;同时我们又在数据修改的第一时间让用户看到了更新。
- 合理使用Memcached进行缓存部署
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用Memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- 使用memcached进行内存缓存
- [转]使用Memcached进行内存缓存
- 【转载】使用memcached进行内存缓存
- arm-linux-gcc 4.3.2编译安装过程
- ACE介绍 中文
- 教你删除笔记本上被隐藏的恢复分区
- 教你使用MySQL触发器自动更新memcache
- memcached使用中的竞争条件
- 合理使用Memcached进行缓存部署
- VMware Workstation 6.0.2.59824 Net方式无法上网的解决办法
- 将MySQL数据映射到Memcached中
- Opengoo 1.3 RC1版本正式发布了,简体中文语言包也更新过了。
- LUA语言学习教程收藏
- PHP5 像使用数组一样使用Memcache
- 让memcached和mysql更好的工作
- JAVA中的反射机制详解
- MySQL触发器自动更新memcache[原创]