联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

PHP内存缓存Memcached类代码

点击数:16292015-07-17 09:47:32 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要:PHP内存缓存Memcached类有需要的朋友可参考一下,PHP内存缓存Memcached类代码如下: ?PHP class MemcacheModel{ private $mc =null; /** *构造方法,用于添加服务器并创建memcahced对象 */ function __construct(){ $p

PHP内存缓存Memcached类有需要的朋友可参考一下,PHP内存缓存Memcached类代码如下:

  1. <?PHP 
  2. class MemcacheModel { 
  3. private $mc = null; 
  4. /** 
  5. * 构造方法,用于添加服务器并创建memcahced对象 
  6. */ 
  7. function __construct(){ 
  8. $params = func_get_args(); 
  9. $mc = new Memcache; 
  10. //如果有多个memcache服务器 
  11. if( count($params) > 1){ 
  12. foreach ($params as $v){ 
  13. call_user_func_array(array($mc, 'addServer'), $v); 
  14. } 
  15. //如果只有一个memcache服务器 
  16. } else { 
  17. call_user_func_array(array($mc, 'addServer'), $params[0]); 
  18. }//开源代码vcphp.com 
  19. $this->mc=$mc; 
  20. } 
  21. /** 
  22. * 获取memcached对象 
  23. * @return object memcached对象 
  24. */ 
  25. function getMem(){ 
  26. return $this->mc; 
  27. } 
  28. /** 
  29. * 检查mem是否连接成功 
  30. * @return bool 连接成功返回true,否则返回false 
  31. */ 
  32. function mem_connect_error(){ 
  33. $stats=$this->mc->getStats(); 
  34. if(emptyempty($stats)){ 
  35. return false; 
  36. }else{ 
  37. return true; 
  38. } 
  39. } 
  40.  
  41. private function addKey($tabName, $key){ 
  42. $keys=$this->mc->get($tabName); 
  43. if(emptyempty($keys)){ 
  44. $keys=array(); 
  45. } 
  46. //如果key不存在,就添加一个 
  47. if(!in_array($key, $keys)) { 
  48. $keys[]=$key;  //将新的key添加到本表的keys中 
  49. $this->mc->set($tabName, $keys, MEMCACHE_COMPRESSED, 0); 
  50. return true;   //不存在返回true 
  51. }else{ 
  52. return false;  //存在返回false 
  53. } 
  54. } 
  55. /** 
  56. * 向memcache中添加数据 
  57. * @param string $tabName 需要缓存数据表的表名 
  58. * @param string $sql 使用sql作为memcache的key 
  59. * @param mixed $data 需要缓存的数据 
  60. */ 
  61. function addCache($tabName, $sql, $data){ 
  62. $key=md5($sql); 
  63. //如果不存在 
  64. if($this->addKey($tabName, $key)){ 
  65. $this->mc->set($key, $data, MEMCACHE_COMPRESSED, 0); 
  66. } 
  67. } 
  68. /** 
  69. * 获取memcahce中保存的数据 
  70. * @param string $sql 使用SQL的key 
  71. * @return mixed 返回缓存中的数据 
  72. */ 
  73. function getCache($sql){ 
  74. $key=md5($sql); 
  75. return $this->mc->get($key); 
  76. } 
  77.  
  78.  
  79. /** 
  80. * 删除和同一个表相关的所有缓存 
  81. * @param string $tabName 数据表的表名 
  82. */  
  83. function delCache($tabName){ 
  84. $keys=$this->mc->get($tabName); 
  85. //删除同一个表的所有缓存 
  86. if(!emptyempty($keys)){ 
  87. foreach($keys as $key){ 
  88. $this->mc->delete($key, 0); //0 表示立刻删除 
  89. } 
  90. } 
  91. //删除表的所有sql的key 
  92. $this->mc->delete($tabName, 0);  
  93. } 
  94. /** 
  95. * 删除单独一个语句的缓存 
  96. * @param string $sql 执行的SQL语句 
  97. */ 
  98. function delone($sql){ 
  99. $key=md5($sql); 
  100. $this->mc->delete
【责任编辑:】(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程