介绍
如何在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类实现内存缓存的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!