RedisCache

来源:互联网 发布:淘宝一元包邮 编辑:程序博客网 时间:2024/06/03 20:36
<?php/** * @author chenliujin <liujin.chen@qq.com> * @since 2013-11-16 */class RedisCache{    public static $host;    public static $port;    public static $db;    protected static $redis;    /**     * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-16     */    public static function getInstance()    {        try {            if (empty(self::$redis)) {                $host = !empty(self::$host) ? self::$host : (defined('REDIS_HOST') ? REDIS_HOST : '127.0.0.1');                $port = !empty(self::$port) ? self::$port : (defined('REDIS_PORT') ? REDIS_PORT : 6379);                $db   = !empty(self::$db)   ? self::$db   : (defined('REDIS_DB')   ? REDIS_DB   : '');                self::$redis = new Redis();                self::$redis->connect($host, $port);                if ($db) self::$redis->select($db);            }            return self::$redis;        } catch (Exception $e) {            error_log('FILE: ' . __FILE__);            error_log('LINE: ' . __LINE__);            error_log('ERROR: ' . var_export($e, TRUE));            return FALSE;        }    }    /**     * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-16     */    public static function set($key, $value, $timeout=0)    {        self::getInstance();        self::$redis->set($key, json_encode($value, TRUE));        if ($timeout > 0) {            self::$redis->setTimeout($key, $timeout);        }    }    /**      * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-16     */    public static function get($key)    {        self::getInstance();        $ret = self::$redis->get($key);        return json_decode($ret, TRUE);    }    /**     * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-16     */    public static function exists($key)    {        try {            self::getInstance();            return self::$redis->exists($key);        } catch (Exception $e) {            return FALSE;        }    }    /**     * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-16     */    public static function incr($key)    {        self::getInstance();        return self::$redis->incr($key);    }    /**     * @author LJ <liujin.chen@qq.com>     * @since 2014-02-25     */    public static function keys($key)     {        self::getInstance();        return self::$redis->keys($key);    }    /**     * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-20     */    public static function flushDB()    {        self::getInstance();        return self::$redis->flushDB();    }    /**     * @author chenliujin <liujin.chen@qq.com>     * @since 2013-11-16     */    public static function flushAll()    {        self::getInstance();        return self::$redis->flushAll();    }} 


原创粉丝点击