基于高速缓存系统遍历查询研究与设计.docVIP

基于高速缓存系统遍历查询研究与设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于高速缓存系统遍历查询研究与设计

基于高速缓存系统遍历查询研究与设计   摘要:由于大型网站具有高负载和高并发的特点,Memcached作为一种解决方案在缓存数据量较大的情况下,使用Memcached的命令组合方式遍历缓存无法完成对所有有效数据的查询。本文针对这个方面研究并设计了缓存数据遍历方案,通过对Memcached客户端的应用研究与模拟实现,很好的解决的这个问题。   关键词:Memcached;缓存;遍历   中图分类号:TP333 文献标识码:A文章编号:1007-9599(2012)01-0000-02   Traversal Query Research and Design Based on the Cache System   Deng Shiquan,Lou Xinyuan   (School of Mechanical Engineering,Southwest Jiaotong University,Chengdu610031,China)   Abstract:The traversal query of data by the compound command in the huge web site turns to be difficult because of the high load and concurrency when we take the Memcached as an solution of data caching. This paper focuses on the problem above and provides an new Memcached based data traversal query method.According to the simulation result, the problem could be well solved by this method.   Keywords:Memcached;Cache;Traverse   一、引言   Memcached是为提升站点性能而设计的分布式应用程序。最早是为liveJournal服务,它采用了C/S架构模式。Memcached可以构建高性能的缓存服务器,减少磁盘数据库的访问次数,分担传统数据的压力,并提高动态Web服务器的吞吐量。目前有许多公司都在使用这个缓存工具来构建大负载、高并发的网站。作为一个轻量级的分布式缓存服务器,Memcached没有提供遍历查询接口,许多人对它的遍历都是使用命令组合的方式来完成,这种方法在缓存中的数据量很多的时候,它无法缓存数据遍历的任务。本文设计并实现了基于XML文档的遍历查询方法弥补了这个方法的缺陷。   二、Memcached的工作原理   Memcached是一个高性能的分布式内存对象缓存系统,它的工作机制是在内   存中开辟一块空间,然后建立一个HashTable,并自行管理这些HashTable。Memcached采用名为Slab Allocator的机制来进行分配和管理内存,Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合)[2]。内存分配原理如图1[2]。   每一个server对数据???象的存储操作都在所切的块中完成,而需要缓存的对象或数据是以键值对(key/value)形式保存在Server端。没有涉及到任何磁盘IO 操作,更不会使用到SWAP 虚拟内存,其性能瓶颈都在网络通信部分 [3]。   Memcached采用最近最少使用(LRU)置换算法,LRU置换算法是选择最近最少使用的页面予以淘汰。当内存不足时,Memcached会从slab各个class中的双向链表的尾部开始检测,                        图1   即最近最少使用的页面,往前一直寻找合适的item予以淘汰。LRU算法为slab局部class淘汰的机制。   三、遍历查询的研究与设计   目前,Memcached在公司和网站中的应用越来越广泛,像facebook,youtube,yahoo,sina,sohu,netease,豆瓣等都在或多或少的使用。在特别注重用户体验的网站上,用户对服务器的响应速度要求很高,如sns,blog等web2.0应用的站点,Memcached的表现突出。Memcached自身只提供了get、set[4]等方法,当需要查看Memcached的数据及状态,要批量删除数据或是给部分数据增加、减少失效时间等等,都需要遍历缓存中的内容,下面介绍两种基于Memcached客户端的遍历方法。   (一)基于Memcach

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档