• php redis 操作


    <?php
    /**
     * Redis缓存操作
     * @author hxm
     * @version 1.0
     * @since 2015.05.04
     */
    class RCache extends Object implements CacheFace
    {
        private $redis = null; //redis对象
         
        private $sId   = 1;    //servier服务ID
         
        private $con   = null;//链接资源
         
        /**
         * 初始化Redis
         *
         * @return  Object
         */
        public function __construct()
        {
            if ( !class_exists('Redis') )
            {
                throw new QException('PHP extension does not exist: Redis');
            }
            $this->redis = new Redis();
        }
         
        /**
         * 链接memcahce服务
         *
         * @access  private
         * @param   string  $key  关键字
         * @param   string  $value  缓存内容
         * @return  array
         */
        private function connect( $sid )
        {
            $file = $this->CacheFile();
            require $file;
            if(! isset($cache) )
            {
                throw new QException('缓存配置文件不存在'.$file);
            }
            $server = $cache[$this->cacheId];
            $sid    = isset($sid) == 0 ? $this->sId : $sid;//memcache服务选择
            if ( ! $server[$sid])
            {
                throw new QException('当前操作的缓存服务器配置文件不存在');
            }
            $host = $server[$sid]['host'];
            $port = $server[$sid]['port'];
            try {
                $this->redis->connect( $host , $port );
            } catch (Exception $e) {
                exit('memecache连接失败,错误信息:'. $e->getMessage());
            }
        }
         
        /**
         * 写入缓存
         *
         * @access  private
         * @param   string  $key  关键字
         * @param   string  $value  缓存内容
         * @return  array
         */
        public function set( $key , $value , $sid , $expire = 0)
        {
            $data = $this->get($key , $sid); //如果已经存在key值
            if( $data )
            {
                return $this->redis->getset( $key , $value);
            } else {
                return $this->redis->set( $key , $value);
            }
        }
         
        /**
         * 读取缓存
         *
         * @access  private
         * @param   string  $key  关键字
         * @param   int     $sid  选择第几台memcache服务器
         * @return  array
         */
        public function get( $key , $sid)
        {
            $this->connect( $sid );
            return $this->redis->get($key);
        }
         
        /**
         *  清洗(删除)已经存储的所有的元素
         *
         * @access  private
         * @return  array
         */
        public function flush()
        {
            $this->connect();
            return $this->redis->flushall();
        }
        /**
         * 删除缓存
         *
         * @access  private
         * @param   string  $key  关键字
         * @param   int     $sid  选择第几台memcache服务器
         * @return  array
         */
        public function remove( $key , $sid)
        {
            $this->connect();
            return $this->redis->del($key);
        }
         
        /**
         * 析构函数
         * 最后关闭memcache
         */
        public function __destruct()
        {
            if($this->redis)
            {
                $this->redis->close();
            }
        }
    }
  • 相关阅读:
    java io系列23之 BufferedReader(字符缓冲输入流)
    java io系列22之 FileReader和FileWriter
    java io系列21之 InputStreamReader和OutputStreamWriter
    java io系列20之 PipedReader和PipedWriter
    java io系列19之 CharArrayWriter(字符数组输出流)
    java io系列18之 CharArrayReader(字符数组输入流)
    java io系列17之 System.out.println("hello world")原理
    java io系列16之 PrintStream(打印输出流)详解
    java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例
    java io系列14之 DataInputStream(数据输入流)的认知、源码和示例
  • 原文地址:https://www.cnblogs.com/pingliangren/p/5587577.html
Copyright © 2020-2023  润新知