PHP支持组操作的Memcache类.docVIP

  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文档。上传文档
查看更多
PHP支持组操作的Memcache类

PHP支持组操作的Memcache类(域操作) Memcache是PHP开发中较常用到的缓存方法,在高并发的系统中是必不可少的组成部分。 在实际开发中,Memcache存在一个比较不尽人意的问题,就是Memcache不能支持对key进行的组操作。 ? 组操作,也可以称为域操作,比如说某个文章系统,在前台部分使用Memcache缓存了列表页数据、文章详细页数据,两种数据的量都比较多。那么,当后台发布了一篇文章的时候,列表页就应该需要更新到最新的列表——可能涉及到许多个列表页。当然,对文章详细页来说,它是不需要更新的。 ? 好的,这个时候我们就需要删除原有缓存,让程序可以自动更新列表页数据。但是使用Memcache的flush函数有个问题,就是它会清空全部的数据,包括列表页和文章页的数据,在大并发的条件下,全部缓存删除后重建缓存的时候,将会有非常高的负载产生。 ? 另外,还会有情况就是有些你不愿意删除的缓存变量,也会丢失了,比如说程序的配置,数据库为了提速而存到缓存的表结构等。 ? 所以我们需要一个支持组操作的缓存机制,我们就可以把列表页设置成一个组,文章页数据是另外一个组,程序配置又是另外一个组等等。当需要重建列表页的时候,只需要删除列表页这个组里面全部的数据,而不会影响到别的组的数据。 ? 测试了几种方案,还是以下的方案最为理想和高速,我们先看代码,再说原理: ? ? ?php? class?MyCache? {? ????private?$mmc?=?null;? ????private?$group?=?null;? ????private?$version?=?1;? ????function?__construct($group){? ????????if(!class_exists(mmcache)){? ????????????$this-mmc?=?false;? ????????????return;? ????????}? ????????$this-mmc?=?new?memcache();? ????????$this-mmc-addServer(,?11211);? ????????$this-mmc-addServer(,?11211);? ????????$this-group?=?$group;? ????????$this-version?=?$this-mmc-get(version_.$group);? ????}? ????function?set($key,?$var,?$expire=3600){? ????????if(!$this-mmc)return;? ????????return?$this-mmc-set($this-group._.$this-version._.$key,?$var,?$expire);? ????}? ????function?get($key){? ????????if(!$this-mmc)return;? ????????return?$this-mmc-get($this-group._.$this-version._.$key);? ????}? ????function?incr($key,?$value=1){? ????????if(!$this-mmc)return;? ????????return?$this-mmc-increment($this-group._.$this-version._.$key,?$value);? ????}? ????function?decr($key,?$value=1){? ????????if(!$this-mmc)return;? ????????return?$this-mmc-decrement($this-group._.$this-version._.$key,?$value);? ????}? ????function?delete($key){? ????????if(!$this-mmc)return;? ????????return?$this-mmc-delete($this-group._.$this-version._.$key);? ????}? ????function?flush(){? ????????if(!$this-mmc)return;? ????????++$this-version;? ????????$this-mmc-set(version_.$this-group,?$this-version);? ????}? }? ?? ? 上面的类比较完整,包括链接Memcache服务,设置和获取值,增减值,还有删除key和全删除(flush)。这里包括

文档评论(0)

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

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

1亿VIP精品文档

相关文档