Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群25
Java1234官方群25:838462530
        

GIT视频教程(结合github,码云)免费领取

SpringBoot打造全栈在线教育平台实战课程

毕设代做论文包查重联系人QQ:1982956321毕设大神

SpringBoot打造企业级进销存

Java1234 VIP课程

领取微信扫码登录Java实现视频教程

Java1234至尊VIP(特价活动)
当前位置: 主页 > Java文档 > Java基础相关 >

memcached全面剖析 PDF 下载


分享到:
时间:2020-08-28 12:40来源:http://www.java1234.com 作者:小锋  侵权举报
memcached全面剖析 PDF 下载
失效链接处理
memcached全面剖析 PDF 下载


 
本站整理下载:
 
相关截图:
 
主要内容:


第 1 章 memcached 的基础
我是     mixi     株式会社开发部系统运营组的长野。日常负责程序的运营。从今天开始,将针对最近在
Web 应用的可扩展性领域的热门话题 memcached,与我公司开发部研究开发组的前坂一起,说明其
内部结构和使用。
1.1  memcached 是什么?
memcached 是以 LiveJournal 旗下 Danga Interactive 公司的 Brad Fitzpatric 为首开发的一款软件。现在
已成为 mixi、hatena、Facebook、Vox、LiveJournal 等众多服务中提高 Web 应用扩展性的重要因素。 许多 Web 应用都将数据保存到 RDBMS 中,应用服务器从中读取数据并在浏览器中显示。但随着数
据量的增大、访问的集中,就会出现 RDBMS 的负担加重、数据库响应恶化、网站显示延迟等重大
影响。 这时就该 memcached 大显身手了。memcached 是高性能的分布式内存缓存服务器。一般的使用目的
是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态 Web 应用的速度、提高可扩展
性。
图 1.1:一般情况下 memcached 的用途 5
 idv2.com 第 1 章 memcached 的基础
1.2  memcached 的特征
memcached 作为高速运行的分布式缓存服务器,具有以下的特点。
• 协议简单
• 基于 libevent 的事件处理
• 内置内存存储方式
• memcached 不互相通信的分布式
协议简单
memcached 的服务器客户端通信并不使用复杂的 XML 等格式,而使用简单的基于文本行的协议。
因此,通过 telnet 也能在 memcached 上保存数据、取得数据。下面是例子。
$ telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
set foo 0 0 3     (保存命令)
bar               (数据)
STORED            (结果)
get foo           (取得命令)
VALUE foo 0 3     (数据)
bar               (数据)
协议文档位于 memcached 的源代码内,也可以参考以下的 URL。 •     http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt
基于 libevent 的事件处理
libevent 是个程序库,它将 Linux 的 epoll、BSD 类操作系统的 kqueue 等事件处理功能封装成统一的
接口。即使对服务器的连接数增加,也能发挥 O(1)的性能。memcached 使用这个 libevent 库,因此
能在 Linux、BSD、Solaris 等操作系统上发挥其高性能。关于事件处理这里就不再详细介绍,可以
参考 Dan Kegel 的 The C10K Problem。 • libevent: http://www.monkey.org/~provos/libevent/
• The C10K Problem: http://www.kegel.com/c10k.html
内置内存存储方式
为了提高性能,memcached 中保存的数据都存储在 memcached 内置的内存存储空间中。由于数据仅
存在于内存中,因此重启 memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指
定值之后,就基于 LRU(Least Recently Used)算法自动删除不使用的缓存。memcached 本身是为缓存
而设计的服务器,因此并没有过多考虑数据的永久性问题。关于内存存储的详细信息,请参考本文 的 第 2 章以后前坂介绍的内容。
memcached 不互相通信的分布式
memcached 尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个 memcached 不会互
相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端的实现。本文也将介绍
memcached 的分布式。
6

 
 
------分隔线----------------------------
锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程