Memcache的缓存技术.pptxVIP

  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文档。上传文档
查看更多
Memcache的缓存技术

Memcache缓存memcachedMemcached简单介绍Memcached是一个免费开源的,高性能的,具有分布式对象的缓存系统,它可以用来保存一些经常存取的对象或数据,保存的数据像一张巨大的HASH表,该表以Key-value对的方式存在内存中。Memcache存取流程适用memcached的业务场景1)如果网站包含了访问量很大的动态网页,因而数据库的负载将会很高。由于大部分数据库请求都是读操作,那么memcached可以显著地减小数据库负载。2)如果数据库服务器的负载比较低但CPU使用率很高,这时可以缓存计算好的结果( computed objects )和渲染后的网页模板(enderred templates)。3)利用memcached可以缓存session数据、临时数据以减少对他们的数据库写操作。4)缓存一些很小但是被频繁访问的文件。常用工作模式Memcached启动参数memcached -d -m 10 -u root -l 192.168.5.80 -p 11222 -c 256 -P /tmp/memcached.pid 参数说明:-d选项是启动一个守护进程-m是分配给Memcache使用的内存数量,单位是MB-u是运行Memcache的用户,这里可用root-l是监听的服务器IP地址-p是设置Memcache监听的端口,最好是1024以上的端口-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定-P是设置保存Memcache的pid文件数据保存指令数据保存是基本的功能,就是客户端通过命令把数据返回过来,服务器端接收后进行处理。指令格式:命令 键 标记 有效期 数据长度命令 - command name主要是储存数据的三个命令, set, add, replaceset 命令是保存一个叫做key的数据到服务器上add 命令是添加一个数据到服务器,但是服务器必须保证这个key是不存在的,能够保证数据不会被覆盖replace 命令是替换一个已经存在的数据,如果数据不存在,就是类似set功能Memache的分布式客户端可以把数据存储在多台memcached上。当查询数据时,客户端首先参考节点列表计算出key的哈希值(阶段一哈希),进而选中一个节点; memcached节点通过一个内部的哈希算法(阶段二哈希),查找真正的数据(item)并返回给客户端。从实现的角度看,memcached是一个非阻塞的、基于事件的服务器程序。memcached尽管是分布式缓存服务器,但服务器端并没有分布式功能。各个memcached 不会互相通信以共享信息。那么,怎样进行分布式呢?这完全取决于客户端程序的分布式计算。 当向memcached集群存入/取出key/value时,memcached客户端程序根据一定的算法计算存入哪台服务器,然后再把key/value值存到此服务器中。也就是说,存取数据分二步走,第一步,选择服务器,第二步存取数据。分布式结构模型Memcached使用限制1.memcache存储的时候对key的长度有限制,php和C的最大长度都是250字符之内,数据项不能超过 1M (这个值由其内存分配机制决定的),因为这是最大的块( slab )值。如果对数据超过1M的值进行set,则会返回FALSE。2.set(key, value)的过期时间是30天,而不是永不过期,为此,如果不设置memcache的过期时间,则默认为30天。3.memcached启动时指定的是数据存储量,没有包括本身占用的内存、以及为了保存数据而设置的管理空间。因此它占用的内存量会多于启动时指定的内存分配量,这点需要注意。4.memcached 本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题.5.访问限制,默认最大同时连接数在1024使用时的注意点1. memcache已经分配的内存不会再主动清理。2. memcache分配给某个slab的内存页不能再分配给其他slab。3. flush_all不能重置memcache分配内存页的格局,只是给所有的item置为过期。4.Memcached的缓存策略是LRU加上到期失效策略。当memcached服务器用完分配的内时,失效的数据被首先替换,然后也是最近未使用的数据。在LRU中,memcached使用的是一种Lazy Expiration策略,自己不会监控存入的key/vlue对是否过期,而是在获取key值时查看记录的时间戳,检查key/value对空间是否过期,这样可减轻服务器的负载5.由于memcache的分布式是客户端程序通过hash算法得到的key取模来实现,不同的语言可能会采用不同的hash算法,同样的客户端程序也有可能使用相异的方法,因此在多语言、多模块

文档评论(0)

ctuorn0371 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档