如何在PHP中Memcached类实现内存缓存

  介绍

如何在PHP中Memcached类实现内存缓存?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

具体实现方法如下:

& lt; ? PHP    {class  MemcacheModel    private  mc 美元;=,零,,/* *,   *,构造方法,用于添加服务器并创建memcahced对象,   */,   __construct () {function    params 美元;=,func_get_args (),,   $ mc =, new  Memcache,//如果有多个memcache服务器,   如果,count ($ params)祝辞,1){,   foreach  (params 美元;as  $ v) {,   中的call_user_func_array(数组(mc美元,& # 39;addServer& # 39;),,美元v),,   },//如果只有一个memcache服务器,   {},else    中的call_user_func_array(数组(mc美元,& # 39;addServer& # 39;),,美元params [0]),,   }   $ this→mc=$ mc,,   },/* *,   *,获取memcached对象,   *,@return  object  memcached对象,   */,   function  getMem () {,   return 这→美元mc,,   },/* *,   *,检查mem是否连接成功,   *,@return  bool 连接成功返回真,否则返回false    */,   function  mem_connect_error () {,   统计=这→美元mc→getStats (),,   如果(emptyempty(元数据)){,   return 虚假,   }{,其他   return 真正的,   },   },   ,   private  function  addKey (tabName美元,,键){,   键=这→美元mc→(tabName美元);,   如果(emptyempty(键)美元){,   $=键数组();,   },//如果关键不存在,就添加一个,   如果(! in_array($键,键)美元),{,   键[]=美元关键;,,//将新的关键添加到本表的键中,   $ this→mc→集($ tabName,钥匙,美元,MEMCACHE_COMPRESSED,, 0),,   return 真实;,,,//不存在返回true    }{,其他   return 假,,,//存在返回false    },   },/* *,   *,向memcache中添加数据,   *,@param  string  tabName 美元;需要缓存数据表的表名,   *,@param  string  sql 美元;使用sql作为memcache的key    *,@param  mixed  data 美元;需要缓存的数据,   */,   function  addCache ($ tabName, sql,美元,美元数据){,   关键=md5 (sql)美元;美元,//如果不存在,   if ($ this→addKey ($ tabName,键)美元){,   $ this→mc→集(键,美元,数据,美元,MEMCACHE_COMPRESSED,, 0),,   },   },/* *,   *,获取memcahce中保存的数据,   *,@param  string  sql 美元;使用SQL的key    *,@return  mixed 返回缓存中的数据,   */,   function  getCache ($ sql) {,   关键=md5 (sql)美元;美元,   return 这→美元mc→(键)美元;,   },   ,/* *,   *,删除和同一个表相关的所有缓存,   *,@param  string  tabName 美元;数据表的表名,   */,,   function  delCache (tabName美元){,   键=这→美元mc→(tabName美元);,//删除同一个表的所有缓存,   如果(! emptyempty(键)美元){,   foreach (keys 美元;as 关键美元){,   $ this→mc→删除(关键美元,,0);,//0,表示立刻删除,   },   },//删除表的所有sql的key    $ this→mc→删除($ tabName, 0);,,   },/* *,   *,删除单独一个语句的缓存,   *,@param  string  sql 美元;执行SQL语的句,   */,   function  delone ($ sql) {,   关键=md5 (sql)美元;美元,   $ this→mc→删除(关键美元,,0);,//0,表示立刻删除,   },   },   ?在

看完上述内容,你们掌握如何在PHP中Memcached类实现内存缓存的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

如何在PHP中Memcached类实现内存缓存