国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP內存緩存Memcached類代碼

2024-09-04 11:44:09
字體:
來源:轉載
供稿:網友

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. ifcount($params) > 1){ 
  12. foreach ($params as $v){ 
  13. call_user_func_array(array($mc'addServer'), $v); 
  14. //如果只有一個memcache服務器 
  15. else { 
  16. call_user_func_array(array($mc'addServer'), $params[0]); 
  17. }//開源代碼Vevb.com 
  18. $this->mc=$mc
  19. /** 
  20. * 獲取memcached對象 
  21. * @return object memcached對象 
  22. */ 
  23. function getMem(){ 
  24. return $this->mc; 
  25. /** 
  26. * 檢查mem是否連接成功 
  27. * @return bool 連接成功返回true,否則返回false 
  28. */ 
  29. function mem_connect_error(){ 
  30. $stats=$this->mc->getStats(); 
  31. if(emptyempty($stats)){ 
  32. return false; 
  33. }else
  34. return true; 
  35.  
  36. private function addKey($tabName$key){ 
  37. $keys=$this->mc->get($tabName); 
  38. if(emptyempty($keys)){ 
  39. $keys=array(); 
  40. //如果key不存在,就添加一個 
  41. if(!in_array($key$keys)) { 
  42. $keys[]=$key;  //將新的key添加到本表的keys中 
  43. $this->mc->set($tabName$keys, MEMCACHE_COMPRESSED, 0); 
  44. return true;   //不存在返回true 
  45. }else
  46. return false;  //存在返回false 
  47. /** 
  48. * 向memcache中添加數據 
  49. * @param string $tabName 需要緩存數據表的表名 
  50. * @param string $sql 使用sql作為memcache的key 
  51. * @param mixed $data 需要緩存的數據 
  52. */ 
  53. function addCache($tabName$sql$data){ 
  54. $key=md5($sql); 
  55. //如果不存在 
  56. if($this->addKey($tabName$key)){ 
  57. $this->mc->set($key$data, MEMCACHE_COMPRESSED, 0); 
  58. /** 
  59. * 獲取memcahce中保存的數據 
  60. * @param string $sql 使用SQL的key 
  61. * @return mixed 返回緩存中的數據 
  62. */ 
  63. function getCache($sql){ 
  64. $key=md5($sql); 
  65. return $this->mc->get($key); 
  66.  
  67.  
  68. /** 
  69. * 刪除和同一個表相關的所有緩存 
  70. * @param string $tabName 數據表的表名 
  71. */  
  72. function delCache($tabName){ 
  73. $keys=$this->mc->get($tabName); 
  74. //刪除同一個表的所有緩存 
  75. if(!emptyempty($keys)){ 
  76. foreach($keys as $key){ 
  77. $this->mc->delete($key, 0); //0 表示立刻刪除 
  78. //刪除表的所有sql的key 
  79. $this->mc->delete($tabName, 0);  
  80. /** 
  81. * 刪除單獨一個語句的緩存 
  82. * @param string $sql 執行的SQL語句 
  83. */ 
  84. function delone($sql){ 
  85. $key=md5($sql); 
  86. $this->mc->delete($key, 0); //0 表示立刻刪除 
  87. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 德化县| 广饶县| 兴安县| 治多县| 诸城市| 阜康市| 芦山县| 西充县| 乌拉特前旗| 崇左市| 兴业县| 辽中县| 叶城县| 望城县| 钟山县| 水富县| 石河子市| 萨迦县| 越西县| 桐梓县| 邓州市| 平山县| 云霄县| 酉阳| 洛川县| 交口县| 定安县| 赤水市| 宜都市| 余庆县| 滦南县| 逊克县| 白河县| 桐乡市| 兰州市| 盘锦市| 平顶山市| 黄大仙区| 北辰区| 小金县| 罗田县|