php专区

 首页 > php专区 > PHP应用 > php类库 > PHP内存缓存Memcached类代码 - php类库

PHP内存缓存Memcached类代码 - php类库

分享到:
【字体:
导读:
          PHP内存缓存Memcached类有需要的朋友可参考一下,PHP内存缓存Memcached类代码如下:?PHPclassMemcacheModel{private$mc=null;/***构造方法,......

PHP内存缓存Memcached类代码

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

  1. class MemcacheModel { 
  2. private $mc = null; 
  3. /** 
  4. * 构造方法,用于添加服务器并创建memcahced对象 
  5. */ 
  6. function __construct(){ 
  7. $params = func_get_args(); 
  8. $mc = new Memcache; 
  9. //如果有多个memcache服务器 
  10. ifcount($params) > 1){ 
  11. foreach ($params as $v){ 
  12. call_user_func_array(array($mc'addServer'), $v); 
  13. //如果只有一个memcache服务器 
  14. else { 
  15. call_user_func_array(array($mc'addServer'), $params[0]); 
  16. }//开源代码phpfensi.com 
  17. $this->mc=$mc
  18. /** 
  19. * 获取memcached对象 
  20. * @return object memcached对象 
  21. */ 
  22. function getMem(){ 
  23. return $this->mc; 
  24. /** 
  25. * 检查mem是否连接成功 
  26. * @return bool 连接成功返回true,否则返回false 
  27. */ 
  28. function mem_connect_error(){ 
  29. $stats=$this->mc->getStats(); 
  30. if(emptyempty($stats)){ 
  31. return false; 
  32. }else
  33. return true; 
  34.  
  35. private function addKey($tabName$key){ 
  36. $keys=$this->mc->get($tabName); 
  37. if(emptyempty($keys)){ 
  38. $keys=array(); 
  39. //如果key不存在,就添加一个 
  40. if(!in_array($key$keys)) { 
  41. $keys[]=$key;  //将新的key添加到本表的keys中 
  42. $this->mc->set($tabName$keys, MEMCACHE_COMPRESSED, 0); 
  43. return true;   //不存在返回true 
  44. }else
  45. return false;  //存在返回false 
  46. /** 
  47. * 向memcache中添加数据 
  48. * @param string $tabName 需要缓存数据表的表名 
  49. * @param string $sql 使用sql作为memcache的key 
  50. * @param mixed $data 需要缓存的数据 
  51. */ 
  52. function addCache($tabName$sql$data){ 
  53. $key=md5($sql); 
  54. //如果不存在 
  55. if($this->addKey($tabName$key)){ 
  56. $this->mc->set($key$data, MEMCACHE_COMPRESSED, 0); 
  57. /** 
  58. * 获取memcahce中保存的数据 
  59. * @param string $sql 使用SQL的key 
  60. * @return mixed 返回缓存中的数据 
  61. */ 
  62. function getCache($sql){ 
  63. $key=md5($sql); 
  64. return $this->mc->get($key); 
  65.  
  66.  
  67. /** 
  68. * 删除和同一个表相关的所有缓存 
  69. * @param string $tabName 数据表的表名 
  70. */  
  71. function delCache($tabName){ 
  72. $keys=$this->mc->get($tabName); 
  73. //删除同一个表的所有缓存 
  74. if(!emptyempty($keys)){ 
  75. foreach($keys as $key){ 
  76. $this->mc->delete($key, 0); //0 表示立刻删除 
  77. //删除表的所有sql的key 
  78. $this->mc->delete($tabName, 0);  
  79. /** 
  80. * 删除单独一个语句的缓存 
  81. * @param string $sql 执行的SQL语句 
  82. */ 
  83. function delone($sql){ 
  84. $key=md5($sql); 
  85. $this->mc->delete($key, 0); //0 表示立刻删除 
  86. ?> 
分享到:
PHP mysql操作类程序 - php类库
PHP mysql操作类程序 一个不错的PHP mysql操作类,实例代码如下:
php高安全验证码生成程序 - php类库
php高安全验证码生成程序 本生成程序需要调用一些字体库,你可以调用你系统自带的一些字体,当然也可以像dedecms一样自己把字体放到一个目录,这样在服务器上也可以使用. php高安全验证码生成程序实例代码如下:  
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……