memcached 简介与应用.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
memcached 简介与应用

默认使用余数式hash算法: server = serverlist[hash(key) % serverlist的个数] 这样明显有一个缺点:当服务器的个数变化时,所有的hash都将无效,全部得重来一次 默认使用余数式hash算法: server = serverlist[hash(key) % serverlist的个数] 这样明显有一个缺点:当服务器的个数变化时,所有的hash都将无效,全部得重来一次 默认使用余数式hash算法: server = serverlist[hash(key) % serverlist的个数] 这样明显有一个缺点:当服务器的个数变化时,所有的hash都将无效,全部得重来一次 /art/201012/236150.htm memcached 简介及应用说明 mengxl 2011-08-09 memcached是什么? 谁在用memcached? memcached的特征介绍 memcached示例说明 memcached的优化点 主要内容 Memcached是什么? memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。 memcache是一个自由和开放源代码、高性能、分布式的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。 谁在用Memcached? 国外 国内 适合什么场合使用 需要分布式部署的 需要频繁访问相同数据的 需要数据共享的 如实现SSO系统的状态存储 Memcached特征 基于C/S架构,协议简单 基于libevent的事件处理 内置内存存储方式 基于客户端的memcached分布式 基于C/S架构,协议简单 服务端启动memcached进程 客户端可以通过telnet操作,也可以通过各种编程语言实现的客户端程序存取数据及查询状态 memcached的服务器与客户端通信并不使用复杂的XML等格式,而使用简单的基于文本行的协议。 基于libevent的事件处理 libevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Windows/Linux/BSD/Solaris 等操作系统的的事件处理。 包装的接口包括: poll、select(Windows)、epoll(Linux)、kqueue(BSD)、/dev/pool(Solaris) Memcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。 关于libevent,可查看:/~provos/libevent/ 内置内存存储方式 数据存储方式:Slab Allocation 数据过期方式:Lazy Expiration + LRU 数据存储方式:Slab Allocation Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以解决内存碎片问题。 Slab Allocation的原理相当简单。 将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合) memcached -f 2 –vv (参数f可设置size) Slab Alloction 构造图 数据存储方式:Slab Allocation memcached根据收到的数据的大小,选择最适合数据大小的slab。 memcached中保存着slab内空闲chunk的列表,根据该列表选择chunk,然后将数据缓存于其中。 Page:分配给Slab的内存空间,默认是1MB。分配给Slab之后根据slab的大小切分成chunk。 Chunk:用于缓存记录的内存空间。 Slab Class:特定大小的chunk的组。 Slab Classes 分配图 数据过期方式 Lazy Expiration memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。这种技术被称为lazy(惰性)expiration。因此,memcached不会在过期监视上耗费CPU时间。 LRU memcached会优先使用已超时的记录的空间,但即使如此,也会发生追加新记录时空间不足的情况,此时就要使用名为 Least Recently Used(LRU)机制来分配空间。顾名思义,这是删除“最近最少使用”的记录的机制。 注意:需要保持服务器之间的时间一致性 基于客户端的memcached的分布式 基于客户端的memcached的分布式 基于客户端的memcached的分布式 选择服务

文档评论(0)

yaobanwd + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档