Redis基础知识之——自定义封装单实例和普通类Redis
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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: [email protected] * 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的主要内容,如果未能解决你的问题,请参考以下文章
java 28 - 4 JDK5的新特性 之 枚举的概述和自定义枚举类