- 1
- 0
- 约7.36千字
- 约 8页
- 2021-10-19 发布于福建
- 举报
memcached 是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨
大的 hash 表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的
结果等。 最初为了加速 LiveJournal 访问速度而开发的 ,后来被很多大型的网站采用。 起初作
者编写它可能是为了提高动态网页应用, 为了减轻数据库检索的压力, 来做的这个缓存系统。
它的缓存是一种分布式的,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,
这种方法不仅解决了共享内存只能是单机的弊端, 同时也解决了数据库检索的压力,最大
的优点是提高了访问获取数据的速度!基于 memcached 作者对分布式 cache 的理解和解决
方案。 memcached 完全可以用到其他地方 比如分布式数据库, 分布式计算等领域。
1、 memcached 协议理解
memcache 是为了加快 / 访问速度而诞生的一个项目。
它的官方主页是: /memcached/
目前在网站开发中应用较少,主要的应用有:
/memcached/users.bml
在国内的网站开发中,还很少没见到有应用的,中文资料十分匮乏。
工作机制:通过在内存中开辟一块区域来维持一个大的 hash 表来加快页面访问速度,和数
据库是独立的。 但是目前主要用来缓存数据库的数据。 允许多个 server 通过网络形成一个大
的 hash,用户不必关心数据存放在哪,只调用相关接口就可。存放在内存的数据通过 LRU
算法进行淘汰出内存。同时可以通过删除和设置失效时间来淘汰存放在内存的数据。
2 、 memcached 使用入门
memcached 最吸引人的地方主要在于它的分布式。分布式对于互联网应用来讲,按照用途基
本上可划分为三种方式:分布式计算、分布式存储和两者兼而有之。 memcached 是分布式存
储的一种。 我们常见的分布式存储大多数是将 N 台设备 (server 或者单独的存储) 构建成盘阵,
而 memcached 旨在构建一个高速的内存池。更通俗一点来讲:分布式计算是将 N 颗 cpu 组
装成一颗 cpu ,分布式慢速存储是将 N 个硬盘组装成一个大硬盘, memcached 是将 N 块内存
组装成一块大内存。
有个朋友问:那是不是代价很昂贵啊。我的回答是肯定的。如果你的网站规模只有三两台服
务器的话, 我觉得你就不用考虑这样的方案了, 等你的网站做大了以后, 再参考这方面的资料即
可。一般都是比较大的互联网公司为了追求更好的用户体验, 才进行这方面的投资, 对他们来讲,
用户体验至上, money 是小 case 。
还有朋友问:有一些 dbms 提供内存表的功能,比如 mysql 的内存表,可以代替 memcache
d 。但我要建议你的是: mysql 的内存表确实起到同样的作用,但它的局限也很多,往往不能让
你随心所欲,所以建议你不要走弯路。
二、 memcached 的应用场景
2.1 应用范围
memcached 产品或相关技术的应用, 我们在前面已经提到了一些。 其实它的应用还是非常
普遍的, 应用作为广泛的领域: 例如 sns 类网站、 blog 类网站、 bbs 类网站以及 im 后台服务。
2.2 sns 类网站的应用
是 99 年始于校园中的项目,有点像中国的校内网。几个学生纯属出于爱
好做了这样一个网站 , 主要实现以下功能: sns 、blog 、bbs 和 rss 等。 livejournal 从建立开
始就采用了大量的开源软件,
原创力文档

文档评论(0)