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

[经验分享] 用FreeBSD与memcached建立分布缓存服务器全程记录之前言

[复制链接]

尚未签到

发表于 2015-9-1 07:07:52 | 显示全部楼层 |阅读模式
  一挥随笔(http://www.cnblogs.com/yihuiso),转载请留下此信息!
  
公司开发了一个社区网站,进行小范围测试时,发现项目运行性能很低(刚开始也是仓促上马,没有进行架构方面的设计,所以现以...),恰好最近时间不那么紧了,所以开发考虑、分析重构网站以提升网站性能的各种方案。

一、经过我们的多方面分析与思考,我认为得先从最简单的方案入手:即先应用缓存技术,迅速提升网站的性能.为什么呢?

1、减轻数据库服务器负担。因为社区类网站有大量的数据(查询)交互操作,虽也应用了ajax等异步技术,从一定程度提高了页面加载的速度,但是并没有降低数据库的操作需求(如果应用不当,甚至会增加数据库操作),在网站运营一段时间后数据库就会首先成为性能的瓶颈。
应用缓存技术策略,就可以降低数据库的负担,从而提高网站响应速度。

2、缓存技术有两大优势:1、缓存系统是类似一个键值对的集合,通过HASH算法检索数据要比数据库快n倍(因为数据库要分析sql语法还要处理多种关联操作),2、缓存系统的数据主要存在内存中,而内存操作速度是磁盘的n倍。
因此采用缓存技术再配以适当的策略可以使网站性能得到明显提升。

3、缓存技术实施简单,不用大规模修改现有架构,只需要修改一下BLL层,在需要缓存的地方插入一小段缓存处理代码即可,类似:

DSC0000.gif DSC0001.gif Code
1 DSC0002.gif if (cacheHelper.ContainKeys("studentlist"))
2 DSC0003.gif {
3 DSC0004.gif     return cacheHelper.Get("studentlist");
4 DSC0005.gif }
5else
6{
7    var student=Dal.GetStudentList(1);
8    cacheHelper.Set("studentlist",student);
9    return student;
10}
4、已经有多种分布式的缓存服务器软件,较著名的有.net的system.web.cache(.net程序员都熟悉),memcached(开源),APC(PHP必备),NCached(商业软件)等.当然也可以自己先写一个简单(一个hash表而已嘛)顶一阵先!


二、经过“多方调研”,memcached是不二之选:
1、可以为公司省下很多money
2、是一个非常成熟的分布式的缓存系统,已经经过无数(就是不知道有多少,当然要大于我的手指加脚趾)大网站的考验!
3、有windows版、linux、freebsd、unix等几乎所有平台的发行版本,而且php,ruby,jsp,python, .net,c/c++等主流非主流语言的客户端api都已经发布
4、以memcached为基础又有高手们贡献了很多东东:新浪张宴的memcachedb,libmemcached等,总之是目前的热门技术。
4、不好我会写那么多废话,打得手都酸?(第一次写博客哟)
*如果贵公司只有一台服务器,那么不要用memcached类的分布式缓存方案,因为它的优势在于专(缓存)和分布式(可以无限增加服务器来扩充缓存服务,但它是依赖网络的),请谨慎选择!

三、选择哪种平台呢?
    1、windows?我们都熟悉
    2、linux?我公司都不熟悉,但教程多,有DOS根底的我应该学得会~_~。
  3、freebsd?(中国没有多少人熟,但是稳定、性能好(简直是缓存系统的绝配!不信你们看《FreeBSD的优缺点分析(转载)》)。
  
崇拜布琳的我,性能为王,所以我选择了freebsd+memcached这个最佳但是最难搞的组合!

……

以上废话算是本系统笔记的前言吧!我将按以下步骤来学习研究缓存系统的建立,后续随笔也将按以下顺序记录我的学习历程,希望各位老师、同学交流指导!特别欢迎freebsd爱好者、张宴光临!

运维网声明 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-108063-1-1.html 上篇帖子: 第二节 Memcached之MemcachedProviders(Enyim)客户端使用及测试 下篇帖子: 安装Memcached及Memcached配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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