您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > PHP >

PHP支持组操作的Memcache类(域操作)

来源:振中的技术记事本 责任编辑:栏目编辑 发表时间:2013-07-01 22:57 点击:

Memcache是PHP开发中较常用到的缓存方法,在高并发的系统中是必不可少的组成部分。

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

      相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • PHP测试
      • 十天学会php之第六天
      • 几种显示数据的方法的比较
      • 使用xmlhttp为网站增加域名查询功能
      • PHP+MYSQL+Javascript数据库查询结果的动态显示
      • 查找数组中指定键名的值
      • 用redis实现跨服务器session
      • 用新浪微博接口发送图片微博失败的原因
      • smarty局部缓存技术[源码分析]
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1