当前位置:首页 > PHP教程 > php高级应用 > 列表

php操作redis缓存方法分享

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-27 15:01:06 浏览: 评论:0 

除了memcache这个比较常用的php的操作类库,我们可能还非常熟悉一个内存缓存的东西,那就是redis,我们给大家分享的这个php技术文章,就是关于如何使用php进行操作redis这个内存缓存工具类库的哦。

php redis缓存操作

  1. <?php 
  2. /** 
  3.  * Redis缓存操作 
  4.  * @author hxm 
  5.  * @version 1.0 
  6.  * @since 2015.05.04 
  7.  */ 
  8. class RCache extends Object implements CacheFace  
  9.   private $redis = null; //redis对象 
  10.      
  11.   private $sId  = 1;  //servier服务ID 
  12.      
  13.   private $con  = null;//链接资源 
  14.      
  15.   /** 
  16.    * 初始化Redis 
  17.    * 
  18.    * @return Object 
  19.    */ 
  20.   public function __construct() 
  21.   { 
  22.     if ( !class_exists('Redis') ) 
  23.     { 
  24.       throw new QException('PHP extension does not exist: Redis'); 
  25.     } 
  26.     $this->redis = new Redis(); 
  27.   } 
  28.      
  29.   /** 
  30.    * 链接memcahce服务 
  31.    * 
  32.    * @access private 
  33.    * @param  string $key 关键字 
  34.    * @param  string $value 缓存内容 
  35.    * @return array 
  36.    */ 
  37.   private function connect( $sid ) 
  38.   { 
  39.     $file = $this->CacheFile(); 
  40.     require $file
  41.     if(! isset($cache) ) 
  42.     { 
  43.       throw new QException('缓存配置文件不存在'.$file); 
  44.     } 
  45.     $server = $cache[$this->cacheId]; 
  46.     $sid  = isset($sid) == 0 ? $this->sId : $sid;//memcache服务选择 
  47.     if ( ! $server[$sid]) 
  48.     { 
  49.       throw new QException('当前操作的缓存服务器配置文件不存在'); 
  50.     } 
  51.     $host = $server[$sid]['host']; 
  52.     $port = $server[$sid]['port']; 
  53.     try { 
  54.       $this->redis->connect( $host , $port ); 
  55.     } catch (Exception $e) { 
  56.       exit('memecache连接失败,错误信息:'$e->getMessage()); 
  57.     } 
  58.   } 
  59.      
  60.   /** 
  61.    * 写入缓存 
  62.    * 
  63.    * @access private 
  64.    * @param  string $key 关键字 
  65.    * @param  string $value 缓存内容 
  66.    * @return array 
  67.    */ 
  68.   public function set( $key , $value , $sid , $expire = 0) 
  69.   { 
  70.     $data = $this->get($key , $sid); //如果已经存在key值 
  71.     if$data )  
  72.     { 
  73.       return $this->redis->getset( $key , $value); 
  74.     } else { 
  75.       return $this->redis->set( $key , $value); 
  76.     } 
  77.   } 
  78.      
  79.   /** 
  80.    * 读取缓存 
  81.    * 
  82.    * @access private 
  83.    * @param  string $key 关键字 
  84.    * @param  int   $sid 选择第几台memcache服务器 
  85.    * @return array 
  86.    */ 
  87.   public function get( $key , $sid
  88.   { 
  89.     $this->connect( $sid ); 
  90.     return $this->redis->get($key); 
  91.   } 
  92.      
  93.   /** 
  94.    * 清洗(删除)已经存储的所有的元素 
  95.    * 
  96.    * @access private 
  97.    * @return array 
  98.    */ 
  99.   public function flush() 
  100.   { 
  101.     $this->connect(); 
  102.     return $this->redis->flushall(); 
  103.   } 
  104.   /** 
  105.    * 删除缓存 
  106.    * 
  107.    * @access private 
  108.    * @param  string $key 关键字 
  109.    * @param  int   $sid 选择第几台memcache服务器 
  110.    * @return array 
  111.    */ 
  112.   public function remove( $key , $sid
  113.   { 
  114.     $this->connect(); 
  115.     return $this->redis->del($key); 
  116.   } 
  117.      
  118.   /** 
  119.    * 析构函数 
  120.    * 最后关闭memcache 
  121.    */ 
  122.   public function __destruct() 
  123.   { 
  124.     if($this->redis) 
  125.     { 
  126.       $this->redis->close(); 
  127.     } 
  128.   } 

以上所述就是本文的全部内容了,希望大家能够喜欢。

Tags: php操作redis

分享到:

相关文章