您的位置:首页 > 数据库 > Memcache

ITOO4.1之缓存—分布式缓存Memcached学习(理论篇)

2016-01-21 13:25 447 查看

1、   何为缓存?

    缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。提高性能。





2、   缓存的类型

1)客户端缓存:

    客户端缓存是说当我们去访问一个新的网站的时候,第一次可能会花一阵子时间才能载入整个页面。然而以后再去时间就会大大缩短,原因就在于客户端缓存。现在浏览器都很智能,它会在客户机器的硬盘上保留许多静态的文件,比如各种gif,jpeg等。等以后再去的时候,它会尽量使用本地缓存里的文件,只有服务器端的文件更新了,或是缓存里面的文件过期了,它才会再次从服务器端下载这些东西。很多时候是浏览器替我们做了这件事情。

2)服务器缓存:

    有些东西没有办法或者说是不适宜在客户端缓存的,这个时候就会用到服务器缓存。服务器端缓存从性质上看,又可以分为两种:

静态文件缓存:

    好多页面是静态的,很少改动,那么这种文件最适于作静态缓存。现在的IIS6.0这部分内容是直接存放在Kernel的内存中,有HTTP.SYS直接管理。由于它在Kernel Space,所以它的性能非常的高。用户的请求如果在缓存里面,那么HTTP.SYS直接将内容发送到network driver上去,不需要像以前那样从IIS的User space的内存再复制到Kernel中,然后再发送到TCP/IP
stack上。kernel level cache几乎是现在高性能Web server的一个必不可少的特性。这就是为什么静态文件快的原因。


动态缓存:

    动态缓存是比较有难度的。因为你在缓存的时候要时刻注意一个问题,那就是缓存的内容是不是已经过时了,因为过时了可能会有很严重的后果。就像是网上买卖股票的网站,给别人的提供的价格是过时的,那人家非得找你拼命。

3、   MVC中的缓存技术—OutputCache过滤器

OutputCache过滤器:用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。  相关属性:

Duration:缓存的时间(以秒为单位)

VaryByParam:以哪个字段为标识来缓存数据

Location:缓存数据放在何处。

4、   Memcached简介

    Memcached是“分布式”的内存对象缓存系统,那么不需要“分布”的、不需要共享的或者干脆规模小到只有一台服务器的应用,Memcached不会带来任何好处,相反还会拖慢系统效率,因为网络连接同样需要资源,如果只是本地级缓存,使用Memcached是非常不划算的。

    Memcached在很多时候都是作为数据库前端Cache使用的。因为它比数据库少了很多SQL解析、磁盘操作等开销,而且它是使用内存来管理数据的,所以它可以提供比直接读取数据库更好的性能。在大型系统中,访问同样的数据是很频繁的,Memcached可以大大降低数据库压力,使系统执行效率提升。另外,Memcached也经常作为服务器之间数据共享的存储媒介。

    Memcached使用内存管理数据,所以它是易失的,当服务器重启或者Memcached进程终止,数据便会丢失,所以Memcached不能用来持久保存数据。很多人错误地理解,认为Memcached的性能非常好,好到了内存和硬盘的对比程度,其实Memcached使用的内存并不会得到成百上千的读写速度提高,它的实际瓶颈在于网络连接。它和使用磁盘的数据库系统相比,好处在于它本身非常“轻”,因为没有过多的开销和直接的读写方式,它可以轻松应付非常大的数据交换量,所以经常会出现两条千兆带宽都满负荷了,Memcached进程本身并不占用多少CPU资源的情况。





    从使用的角度来说,Memcached针对Asp.net的API就像和内置的API一样。开发人员很容易使用Memcached,仅仅通过在代码中查找和替换即可实现。

 

小结:

    通过这两天对Memcached的学习,对缓存的理论有了一些了解。在做ITOO4.1中需要从session中获取一些用户选择了的值,当时做的时候就对缓存一知半解的,所以挺有兴趣研究这一块知识的。这两天也一直在尝试着安装Memcached,安装成功了,但是一些命令运行老报错,提示需要至少4个线程,所以还需要深入研究一下。小编是有些困惑,接下来将不断尝试,找到解决问题的办法,同时进一步研究Memcached技术在ITOO中的应用及代码实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: