首页 > 代码库 > Redis基础知识之——自定义封装单实例和普通类Redis
Redis基础知识之——自定义封装单实例和普通类Redis
一、普通Redis实例化类:
class MyRedis{ private $redis; public function __construct($host = ‘121.41.88.209‘, $port = 63789) { $this->redis = new Redis(); $this->redis->connect($host, $port); } public function expire($key = null, $time = 0) { return $this->redis->expire($key, $time); } public function psubscribe($patterns = array(), $callback) { $this->redis->psubscribe($patterns, $callback); } public function setOption() { $this->redis->setOption(\Redis::OPT_READ_TIMEOUT,-1); }}
二、单例模式Redis实例化类:
<?php/** * Created by PhpStorm. * User: Tinywan * Date: 2016/7/3 * Time: 9:26 * Mail: Overcome.wan@Gmail.com * Singleton instance */namespace Org\Util;class RedisInstance{ /** * 类对象实例数组,共有静态变量 * @var null */ private static $_instance; /** * 数据库连接资源句柄 * @var */ private static $_connectSource; /** * 私有化构造函数,防止类外实例化 * RedisConnect constructor. */ private function __construct() { } /** * 单例方法,用于访问实例的公共的静态方法 * @return \Redis * @static */ public static function getInstance() { if (!(static::$_instance instanceof \Redis)) { static::$_instance = new \Redis(); self::getInstance()->connect(C(‘MASTER.HOST‘), C(‘MASTER.PORT‘), C(‘MASTER.TIMEOUT‘)); } return static::$_instance; } /** * Redis数据库是否连接成功 * @return bool|string */ public static function connect() { // 如果连接资源不存在,则进行资源连接 if (!self::$_connectSource) { //@return bool TRUE on success, FALSE on error. self::$_connectSource = self::getInstance()->connect(C(‘MASTER.HOST‘), C(‘MASTER.PORT‘), C(‘MASTER.TIMEOUT‘)); // 没有资源返回 if (!self::$_connectSource) { return ‘Redis Server Connection Fail‘; } } return self::$_connectSource; } /** * 私有化克隆函数,防止类外克隆对象 */ private function __clone() { // TODO: Implement __clone() method. } /** * @return \Redis * @static */ public static function test() { return ‘test‘; }
Redis基础知识之——自定义封装单实例和普通类Redis
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。